用C语言求 输入30个成绩数据,统计各分数段(0~59,60~69,70~79,80~89,90~100)的人数,最高分,最低分和平均分.

如题所述

#include<stdio.h>
main()
{
int a[30],max,min,average,h=0,s1=0,s2=0,s3=0,s4=0,s5=0,i;
for(i=0;i<30;i++)
{
scanf("%d",a[i]);
if(a[i]<=59&&a[i]>=0) s1++;
if(a[i]<=69&&a[i]>=60 s2++;
if(a[i]<=79&&a[i]>=70) s3++;
if(a[i]<=89&&a[i]>=80) s4++;
if(a[i]<=100&&a[i]>=90) s5++;
}
max=min=a[0];averae=0;
for(i=0;i<30;i++)
{
if(min>a[i]) min=a[i];
if(max<a[i]) max=a[i];
h=h+a[i];
}
average=h/30;
printf("0~59的人数:%d\n60~69的人数:%d\n70~79的人数:%d\n80~89的人数%d/n90~100的人数:%d\n",s1,s2,s3,s4,s5);
printf("最高分:%d\n最低分:%d\n平均分:%d\n",max,min,average);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-11
#include<stdio.h>
main()
{ int i,a[30], b[5],max,min,ave=0;
bb[5]={0};
printf("Enter 30 students' goals:\n");
for(i=0;i<30;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=0;i<30;i++)
{if(a[i]>=0&&a[i]<=59)b[0]++;
if(a[i]>=60&&a[i]<=69)b[1]++;
if(a[i]>=70&&a[i]<=79)b[2]++;
if(a[i]>=80&&a[i]<=89)b[3]++;
if(a[i]>=90&&a[i]<=100)b[4]++;
if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
ave+=a[i];
}
ave/=30;
prifnt("各阶段的成绩人数分别为:\n");
for(i=0;i<5;i++)
printf("%4d",b[i]);
printf("最高分与最低分和平均分分别为:\n");
printf("max=%d,min=%d,ave=%d",max,min,ave);
}本回答被提问者采纳
第2个回答  2011-05-12
这个是你要的程序,vc6.0通过调试运行了。
#include<stdio.h>
void main()
{
int no=1,count[5]=;
float score;
for(;no<=10;no++)
{
printf("input a score:\n");
scanf("%f",&score);
if(score>=0&&score<60)
count[0]++;
if(score>=60&&score<70)
count[1]++;
if(score>=70&&score<80)
count[2]++;
if(score>=80&&score<90)
count[3]++;
if(score>=90&&score<=100)
count[4]++;
}
printf("0~60:%d\n60~70:%d\n70~80:%d\n80~90:%d\n90~100:%d\n",count[0],count[1],count[2],count[3],count[4]);
}
相似回答