C语言程序设计:从键盘输入一个班(不超过三十人)学生某门课成绩,当输入成绩为负值时,则输入结束,统

2024-12-05 02:41:52
推荐回答(3个)
回答1:

#include #include struct ScoreRecord{ char xm[10]; float score;}; int main(){ ScoreRecord cj[30]; char s[10]; float x,sum=0,average; int i=0,c,iFailCount=0,iHigh=0; int iC100=0,iC80=0; printf("姓名:"); gets(s); printf("\n成绩:"); scanf("%f",&x); fflush(stdin); while(x>=0) { strcpy(cj[i].xm,s); cj[i].score=x; sum+=x; if(x<60) iFailCount++; else if(x<80) iC80++; else iC100++; printf("姓名:"); gets(s); printf("\n成绩:"); scanf("%f",&x); fflush(stdin); i++; } average=sum/(i-1); printf("不及格名单:\n"); c=i; for(i=0;iaverage) iHigh++; if(cj[i].score<60) printf("%s\t%.2f\n",cj[i].xm,cj[i].score); } printf("不及格人数:%d\n",iFailCount); printf("高于平均分名单:\n"); for(i=0;iaverage) printf("%s\t%.2f\n",cj[i].xm,cj[i].score); } printf("高于平均分的人数:%d\n",iHigh); printf("不及格人数:%d\t所占有比例:%.2f\n",iFailCount,(float)iFailCount/c*100); printf("60-80人数:%d\t所占有比例:%.2f\n",iC80,(float)iC80/c*100); printf("80-100人数:%d\t所占有比例:%.2f\n",iC100,(float)iC100/c*100); return 0;}

回答2:

回答3:

#include "stdio.h"
int main()
{
int score[30]={};
int num = 0;
for(int i=0;i<30;)
{
printf("输入第%d个学生成绩:",i+1);
if(scanf("%d",&score[i]))
{
if(score[i]<0)
break;
i++;
num++;
}
else
{
fflush(stdin);
printf(("输入错误。\n"));
}
}
int failnum = 0;
for(int i=0;i{
if(score[i]<60)
{
failnum++;
printf("第%d个学生不及格,成绩为:%d\n",i+1,score[i]);
}
}
printf("共%d个学生不及格\n",failnum);
for(int i =0;i{
for(int j=num-1;j>i;j--)
{
if(score[j]>score[j-1])
{
int temp = score[j-1];
score[j-1] = score[j];
score[j] = temp;
}
}
}
printf("成绩顺序:");
for(int i=0;i{
printf("%d\t",score[i]);
}
printf("\n");
printf("最高成绩:%d\n",score[0]);
printf("最低成绩:%d\n",score[num-1]);
return 0;
}