C++008-C++循环结构简单统计

简介: C++008-C++循环结构简单统计

C++008-C++循环结构简单统计



在线练习:

http://noi.openjudge.cn/ch0104/

https://www.luogu.com.cn/


案例练习


题目描述 输出最高分

输入数据:


题目描述

在比赛中,去掉一个最高分,去掉一个最低分,选手的最后得分由剩余评委打分的平均分或总分决定。


输入

多个评委的打分

输出

最高分

样例输入

10 9 8 7 6

样例输出

10


思路:


设定变量Max,初始化为INT_MIN;

输入变量a,如果a>Max,那么Max=a;

重复步骤2,直到所有的数据输入完毕。

注:要使用INT_MIN等极限值,需要包含头文件<limits.h>;或者使用万能头文件<bits/stdc++.h>

823b341c9bedf6e46d0ae59a99c76b54_fc40b790d10044a289862b4cc85075dc.png


#include<iostream>
#include<limits>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m,Max = INT_MIN;
    cin>>n;
    for(int i = 1; i <= n ;i++)
    {
        cin >>m;
        if(m > Max) Max = m;
        cout<<"m="<<m<<",Max="<<Max<<endl;
    }
    cout<<"Max="<<Max;
    return 0;
}

输出为:

49b727a4bc2a7b78501a65ba81752679_7493ab742e0343a7af5eb4e583b2ea13.png


题目描述 整数序列的元素最大跨度值

题目描述

给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。


输入

一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。

输出

输出一行,表示序列的最大跨度值。

样例输入

6

3 0 8 7 5 9

样例输出

9


#include<iostream>
#include<limits>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m,Max=INT_MIN,Min=INT_MAX;
    cin>>n;
    for(int i = 1; i <= n ;i++)
    {
        cin >>m;
        if(m > Max) Max = m;
        if(m < Min) Min = m;
        cout<<"m="<<m<<",Max="<<Max<<endl;
        cout<<"m="<<m<<",Min="<<Min<<endl;
    }
    cout<<Max - Min;
    return 0;
}

输出为:

4c4d2765a65dd8fc7f1904adbcaafca2_d07c76fa36e844809a2d2e6e5d12728b.png


题目描述 求和与均值

题目描述

读入n (1<=n<=10000)个整数,求它们的和与均值。

输入

输入第一行是一个整数n,表示有n个整数。

第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。

输出

输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。

样例输入

4

344

222

343

222

样例输出

1131 282.75000


//#include <iostream>
//#include<iomanip>
#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  double a,sum=0,avg;
  cin>>n;
  for(int i =1;i <=n;i++)
  {
      cin >>a;
      sum+=a;
  }
  avg = sum/n;
  cout<<sum<<" ";
  //cout<<fixed<<setprecision(0)<<sum<<" ";
  cout<<fixed<<setprecision(5)<<avg<<"";
  return 0;
}

出错的根源:

上一个程序为在计算平均值时不做隐式臻化而把输入数据喜明为dgble,耍和值超过6位数时,浮点类型数据为了保持6位有效数字而改用科学记数法。整数类型不会有这样的情况发生,所以与答案输出不相符,错误!

改正方案:

按照题目描述,输入数据以及和值声明为int类型,计算平均值时进行隐式转化即可。

和值若为浮点数,在15位有效数字内,可以设定输出精度为小数点后0位;


题目描述 最高的分数

题目描述

孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗。

输入

输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.

第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。


输出

输出一个整数,即最高的成绩。

样例输入

5

85 78 90 99 60

样例输出

99


#include <iostream>
#include<limits>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
  int Max=INT_MIN;
  int n;
  int a;
  cin>>n;
  for(int i =1;i <=n;i++)
  {
      cin >>a;
      if(a>Max) Max=a;
  }
  cout<<Max;
  return 0;
}

4bde9910bc841b1ced2498540d4a279e_41281d5668ff4cfc8e99cb6431f81ae8.png


题目描述 奥运奖牌计数

题目描述

2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。

输入

输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。


输出

输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。

样例输入

3

1 0 3

3 1 0

0 3 0

样例输出

4 4 3 11


#include <iostream>
#include<limits>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n,a,b,c,s1=0,s2=0,s3=0;
  cin>>n;
  for(int i =1;i <=n;i++)
  {
      cin >>a>>b>>c;
      s1 += a;
      s2 += b;
      s3 += c;
  }
  cout<<s1<<" "<<s2<<" "<<s3<<" "<<s1+s2+s3;
  return 0;
}

31187b8fc27120700d86eb2b4ae0ff43_290a272c114e455eb951c6b6c57b9d95.png


在线练习:


http://noi.openjudge.cn/


总结


本系列为C++学习系列,会介绍C++基础语法,基础算法与数据结构的相关内容。本文为C++循环结构的入门课程,包括相关案例练习。

相关文章
|
6月前
|
C++
c++循环结构讲解
c++循环结构讲解
88 0
|
6月前
|
存储 C++
C++循环结构
C++循环结构
47 1
|
4月前
|
NoSQL Redis C++
c++开发redis module问题之在复杂的Redis模块中,特别是使用第三方库或C++开发时,接管内存统计有哪些困难
c++开发redis module问题之在复杂的Redis模块中,特别是使用第三方库或C++开发时,接管内存统计有哪些困难
|
5月前
|
C++
C++一分钟之-循环结构:for与while循环
【6月更文挑战第18天】在C++中,`for`循环适合已知迭代次数,如数组遍历;`while`循环适用于条件驱动的未知次数循环。`for`以其初始化、条件和递增三部分结构简洁处理重复任务,而`while`则在需要先检查条件时更为灵活。常见错误包括无限循环和逻辑错误,解决办法是确保条件更新和正确判断。了解两者应用场景及陷阱,能提升代码效率和可读性。
65 6
|
5月前
|
C++
C++循环结构
C++循环结构
|
6月前
|
算法 程序员 C++
C++程序中的循环结构:控制程序重复执行的关键
C++程序中的循环结构:控制程序重复执行的关键
146 2
|
6月前
|
存储 安全 编译器
【C++从练气到飞升】03---C++入门(三)
【C++从练气到飞升】03---C++入门(三)
|
6月前
|
Unix 编译器 C语言
【C++从练气到飞升】01---C++入门(一)
【C++从练气到飞升】01---C++入门(一)
|
6月前
|
存储 自然语言处理 编译器
【C++从练气到飞升】02---C++入门(二)
【C++从练气到飞升】02---C++入门(二)
|
6月前
|
C++
41.用c++编写程序:从键盘上任意输20个1-99之间的整数,分别统计其个位数0-9的数字各有多少
41.用c++编写程序:从键盘上任意输20个1-99之间的整数,分别统计其个位数0-9的数字各有多少
52 0