有一个一维数组,内放10个学生成绩,输出各分数段人数、平均分、最高分和最低分。

用c语言编写,百度知道上有个同样的问题,但是跟我需要的不同,要#include <stdio.h>这种开头的,那位牛人来帮帮忙啊,今天就要交了,拜托啦!!越快越好

#include<stdio.h>
int main()
{
int score[10]={58,62,68,72,79,86,84,93,99,100};
int num[6]={0};/*存放各阶段人数*/
int i,j,t,sum=0;
for(i=0;i<10;i++)
{
if(score[i]<60)
num[0]++;
else if(score[i]>=60 && score[i]<70)
num[1]++;
else if(score[i]>=70 && score[i]<80)
num[2]++;
else if(score[i]>=80 && score[i]<90)
num[3]++;
else if(score[i]>=90 && score[i]<100)
num[4]++;
else if(score[i]==100)
num[5]++;
}
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(score[i]<score[j])
{
t=score[i];
score[i]=score[j];
score[j]=t;
}
for(i=0;i<10;i++)
sum+=score[i];
printf("0-59:%d\n",num[0]);
printf("60-69:%d\n",num[1]);
printf("70-79:%d\n",num[2]);
printf("80-89:%d\n",num[3]);
printf("90-99:%d\n",num[4]);
printf("100:%d\n",num[5]);
printf("the max score:%d\n",score[0]);
printf("the min score:%d\n",score[9]);
printf("the average score:%f\n",sum/10.0);

getch();
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-03
已经编译运行确认:

#include<stdio.h>
#include<conio.h>

struct fenlei
{
int flag;
int max;
int min;
int total;
float ave;
int num;
};

void main()
{
int score[10]={NULL};
struct fenlei record[10]={NULL};
int i=0;

for(i=0;i<10;i++)
{
record[i].min=100;
}

printf("请输入10个学生的成绩: \n");
for(i=0;i<10;i++)
{
printf("第%d个学生的成绩:",i+1);
scanf("%d",&score[i]);

if((score[i]>=90)&&(score[i]<=100))
{
record[9].num++;
record[9].total+=score[i];
if(score[i]>record[9].max) record[9].max=score[i];
if(score[i]<record[9].min) record[9].min=score[i];
}
else if((score[i]>=80)&&(score[i]<=89))
{
record[8].num++;
record[8].total+=score[i];
if(score[i]>record[8].max) record[8].max=score[i];
if(score[i]<record[8].min) record[8].min=score[i];
}
else if((score[i]>=70)&&(score[i]<=79))
{
record[7].num++;
record[7].total+=score[i];
if(score[i]>record[7].max) record[7].max=score[i];
if(score[i]<record[7].min) record[7].min=score[i];
}
else if((score[i]>=60)&&(score[i]<=69))
{
record[6].num++;
record[6].total+=score[i];
if(score[i]>record[6].max) record[6].max=score[i];
if(score[i]<record[6].min) record[6].min=score[i];
}
else if((score[i]>=50)&&(score[i]<=59))
{
record[5].num++;
record[5].total+=score[i];
if(score[i]>record[5].max) record[5].max=score[i];
if(score[i]<record[5].min) record[5].min=score[i];
}
else if((score[i]>=40)&&(score[i]<=49))
{
record[4].num++;
record[4].total+=score[i];
if(score[i]>record[4].max) record[4].max=score[i];
if(score[i]<record[4].min) record[4].min=score[i];
}
else if((score[i]>=30)&&(score[i]<=39))
{
record[3].num++;
record[3].total+=score[i];
if(score[i]>record[3].max) record[3].max=score[i];
if(score[i]<record[3].min) record[3].min=score[i];
}
else if((score[i]>=20)&&(score[i]<=29))
{
record[2].num++;
record[2].total+=score[i];
if(score[i]>record[2].max) record[2].max=score[i];
if(score[i]<record[2].min) record[2].min=score[i];
}
else if((score[i]>=10)&&(score[i]<=19))
{
record[1].num++;
record[1].total+=score[i];
if(score[i]>record[1].max) record[1].max=score[i];
if(score[i]<record[1].min) record[1].min=score[i];
}
else if((score[i]>=0)&&(score[i]<=9))
{
record[0].num++;
record[0].total+=score[i];
if(score[i]>record[0].max) record[0].max=score[i];
if(score[i]<record[0].min) record[0].min=score[i];
}
}

for(i=9;i>=0;i--)
{
if(record[i].num!=0)
{
record[i].ave=(record[i].total*1.0)/record[i].num;
if(i==9) printf("\n90到100分数段人数为: ");
else printf("\n%d到%d分数段人数为:",i*10,i*10+9);
printf(" %d人, 平均分为: %.1f ,最高分为: %d, 最低分为: %d.",record[i].num,record[i].ave,record[i].max,record[i].min);
}
}

getch();
}
相似回答