现在的位置: 首页 > 综合 > 正文

14-2成绩的各项处理

2014年02月12日 ⁄ 综合 ⁄ 共 1086字 ⁄ 字号 评论关闭

 

/*
作者:刘晓晓
时间:2013.11.30
问题描述:
    (1)输入小组人数及成绩,要保证成绩在0-100之间;
  (2)输出该小组的最高成绩、最低成绩、平均成绩;
  (3)输出考得最高成绩和最低成绩的同学的人数;
  (4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
  
*/

#include <iostream>
#include <cmath>
#include<cstdio>
using namespace std;

int main(void)
{

  int score [50] ;
  int num,i;
  cout<<"小组中共有多少名同学?" ;
  cin>>num;
  cout<<"请输入学生的成绩:"<<endl;

  //输入numm名同学的成绩
  for(i=0;i<=num;i++)

  do
  {
      cout<<"第"<<i<<"个同学的成绩:";
      cin>>score[i];
  }
  while (score[i]<0||score[i]>100);

//求出并输出最高成绩,最低成绩和平均成绩

int max=-1,min=999,sum=0,ave;
for(i=0;i<=num;i++)
{
    if(score[i]>max)
    max=score[i];
    if(score[i]<min)
    min=score[i];
    sum+=score[i];
}
ave=sum/num;
cout<<"最高成绩为:"<<max<<"最低成绩为 "<<min<<"平均成绩为 "<<ave<<endl;

//求出并输出考得最高成绩和最低成绩人数
int max_a=0,min_b=0;
for(i=0;i<num;i++)
{

if(max==score[i])
max_a++;
if(min==score[i])
min_b++;
}

cout<<"考取最高成绩"<<max<<"的有"<<max_a<<"个人"<<"他们的学号为:";
for(i=0;i<num;i++)
{
    if (max==score[i])
    cout<<i<<" ";
}
cout<<endl;
cout<<"考取最低成绩"<<min<<"的有"<<min_b<<"个人"<<"他们的学号是:";
for (i=0;i<num;i++)
{
    if(min==score[i])
    cout<<i<<" ";

}
cout<<endl;

 


 

    return 0;
}
心得:从看到要求的不知所措,到先分成好几个小题做,然后再串联起来。整个题就很清楚了。虽然花费了大量的时间,不过真的体会到了不一样的快乐。

抱歉!评论已关闭.