您的位置:首页 > 其它

提高第18课时,实践2,成绩处理

2015-05-08 20:27 190 查看
/*
*Copyright(c) 2015/5/8 CSDN博客
*All rights reserved.
*文件名称:main.c
*作    者:金叶
*完成日期:2015/5/8
*版本号:V1.0
*问题描述:项目2 - 成绩处理
*在数组score中将要存储某小组C程序设计的成绩,请完成下面的处理:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
*/

#include <stdio.h>
int  max (int i); //作用:输出最高的成绩
int  min (int i); //作用:输出最差的成绩
double aver (int i); //作用:算出平均分

int score[100];//成绩的数组定义为全局变量

int main()
{

int i,j;  //i为同学数量
printf("小组一共有多少位同学:");
scanf("%d",&i);
printf("请输入同学的成绩:\n");
for (j=0;j<i;j++){
printf("输入第 %d 位同学的成绩:",j);
scanf("%d",&score[j]);
if (score[j]<0||score[j]>100){
j--;
continue;
}
}

int max1;
max1=max(i);
int min1;
min1=min(i);

double aver1;
aver1=aver(i);
printf("平均成绩为%.2lf\n",aver1);

int max_sum=0;//最高分同学的数量
int min_sum=0;//最低分同学的数量
for (j=0;j<i;j++){
if (score[j]==max1){
printf("最高分同学的学号为%d\n",j);
max_sum++;
}
if (score[j]==min1){
printf("最低分同学的学号为%d\n",j);
min_sum++;
}
}
printf("最高分同学的数量为%d\n",max_sum);
printf("最低分同学的数量为%d\n",min_sum);
return 0;
}

int max (int i)
{
int a;
int max=-1;
for (a=0;a<i;a++){
if (score[a]>max){
max=score[a];
}
}
printf("最高成绩为%d\n",max);
return max;
}

int min(int i)
{
int a;
int min=101;
for (a=0;a<i;a++){
if (score[a]<min){
min=score[a];
}
}
printf("最差成绩为%d\n",min);
return min;
}

double aver (int i)
{
int a;
double sum=0;
double aver2;
for (a=0;a<i;a++){
sum+=score[a];
}
aver2=sum/i;
return aver2;
}




自我感觉做的很好,给自己赞一个 哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: