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

C语言程序设计:从键盘输入一个班(不超过三十人)学生某门课成绩,当输入成绩为负值时,则输入结束,统计并输出不及格人数并打印不及格学生成绩,按成绩高低排序,输出该班最高分及最低分。大学C语言编程方法学题目求大神帮忙写个程序

#include <stdio.h>#include <string.h>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;i<c;i++) { if(cj[i].score>average) 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;i<c;i++) { if(cj[i].score>average) 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;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-11

本回答被提问者和网友采纳
第2个回答  2015-05-14
#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<num;i++)
{
if(score[i]<60)
{
failnum++;
printf("第%d个学生不及格,成绩为:%d\n",i+1,score[i]);
}
}
printf("共%d个学生不及格\n",failnum);
for(int i =0;i<num;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<num;i++)
{
printf("%d\t",score[i]);
}
printf("\n");
printf("最高成绩:%d\n",score[0]);
printf("最低成绩:%d\n",score[num-1]);
return 0;
}

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网