输入10个学生的成绩,计算并输出学生的最高分、最低分、平均分、及格人数,及及格率?

输入10个学生的成绩,计算并输出学生的最高分、最低分、平均分、及格人数,及及格率

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int mark[10];
int i;
int max = 0;
int min = 100;
int sum = 0;
int ave;
int up = 0; // 合格人数
int down = 0; // 不合格人数

printf("请输入10个分数: ");
for (i = 0; i < 10; i++)
scanf("%d", &mark[i]);

// 计算最高分
for (i = 0; i < 10; i++) {
if (mark[i] > max)
max = mark[i];
if (mark[i] >= 60)
up++;
if (mark[i] < 60)
down++;
}

// 计算最低分
for (i = 0; i < 10; i++)
if (mark[i] < min)
max = mark[i];

// 计算总和
for (i = 0; i < 10; i++)
sum += mark[i];

// 平均成绩
ave = sum / 10;

printf("最高分: %d\n", max);
printf("最低分: %d\n", max);
printf("平均分: %d\n", ave);
printf("合格人数: %d\n", up);
printf("不合格人数: %d\n", down);
printf("合格率: %.1f", ((float)up)/((float)(up + down)));

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-04
C语言写的
main()
{
int stu[10],i,max=0,min=10000,p=0;
float pr,t,ave,sum=0;
for(i=0;i<10;i++)
{printf("score of stu[%d]=",i+1);
scanf("%d",&stu[i]);
printf("\n");
sum=sum+stu[i];}
for(i=0;i<10;i++)
{if (stu[i]>max)max=stu[i];
if (stu[i]<min)min=stu[i];
if (stu[i]>=60) p++;}
ave=sum/10;
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("ave=%0.2f\n",ave);
printf("pass=%d\n",p);
t=p;pr=t/10;
printf("pass rate=%0.2f\n",pr);
getch();
}
第2个回答  2011-01-06
用C实现
我看了楼上的回答,都还好。不过都少了一个判断条件,就是输入分数时万一输入错误,比如百分制时,出现负分数,导致平均分等的错误!!!
做个简单的就用数组解决,做个实用点的用数据结构,可以实现把信息输进去,并可以查到谁不及格,以及最高分是谁,最低是谁都可以实现!!!
第3个回答  2011-01-04
设1个数组几个变量不就完了
第4个回答  2011-01-04
10101010101010101010=100000000
相似回答