前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++008-C++循环结构简单统计

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

作者头像
用户2225445
发布2023-10-16 16:49:13
2670
发布2023-10-16 16:49:13
举报
文章被收录于专栏:IT从业者张某某

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>

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
#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;
}

输出为:

在这里插入图片描述
在这里插入图片描述
题目描述 整数序列的元素最大跨度值

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

输入 一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。 输出 输出一行,表示序列的最大跨度值。 样例输入 6 3 0 8 7 5 9 样例输出 9

代码语言:javascript
复制
#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;
}

输出为:

在这里插入图片描述
在这里插入图片描述
题目描述 求和与均值

题目描述 读入n (1<=n<=10000)个整数,求它们的和与均值。 输入 输入第一行是一个整数n,表示有n个整数。 第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。 输出 输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。 样例输入 4 344 222 343 222 样例输出 1131 282.75000

代码语言:javascript
复制
//#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

代码语言:javascript
复制
#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;
}
在这里插入图片描述
在这里插入图片描述
题目描述 奥运奖牌计数

题目描述 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

代码语言:javascript
复制
#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;
}
在这里插入图片描述
在这里插入图片描述

在线练习:

http://noi.openjudge.cn/

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C++008-C++循环结构简单统计
    • 案例练习
      • 题目描述 输出最高分
      • 题目描述 整数序列的元素最大跨度值
      • 题目描述 求和与均值
      • 题目描述 最高的分数
      • 题目描述 奥运奖牌计数
    • 在线练习:
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档