C语言程序设计:从键盘输入一个班(不超过30人)学生某门课的成绩

时间:2021.11.06 发布人:wangliangds

C语言程序设计:从键盘输入一个班(不超过30人)学生某门课的成绩

已解决问题

谷歌wangliangds用户在2021.11.06提交了关于“澳门C语言程序设计:从键盘输入一个班(不超过30人)学生某门课的成绩”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-26T20:58:38。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你是我的宝贝,你是我的花,谢谢你对我的帮助!

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  

#交裂即须去难倒include"stdio.h"

#inc来自lude"time.h"

#include"wind问答ows.h"

intRadom(inta,intb)

{

returnrand()%(b-a+1)+a;

}

//定义一个结构团家院盟办都觉凯体

struct_CJinf{

charkcName[50];//课程名称

charxsNum[24];//学生学号

charxsName[50];//学生姓名

floatcj;//学生成绩

};

//求解平均分

floatprint_**r回办话够(struct_CJinf*lpCJ,intlen)

{

i样哥亲物朝某nti,count=0;

floatfsum=0.0;

for(i=0;len>i;i++)

{

fsum+=lpCJ[i].c走气科航j;

}

if(len>0)

{

fs深um=fsum/len;

}

returnfsum;

}

//统计不及格

int庆简著掌息处print_fail(struct_CJinf*散lpCJ,intlen)

{

inti,count=0;

for(i=0;l积en>i;i++)

自染坐星士检话{

if(60.0>lpCJ[立经造电减i].cj)

{

printf("%s\t:%s:%.1f

",lpCJ[i].xsName,lpCJ[i].kcName,lpCJ[i].cj);

count++;

}

}

printf("

统计不许兰测让缩社陈及格人数:%d

",count所执著挥);

returncount;

}

//排序一下

intpri方法棉他轻跳杆支航察备nt_sort(struct_CJinf*lpCJ,intlen)

{

inti,j,k;

struct_CJinftemp;

for(i=0;len>i;i++)

{

for(k=j=i;le负到n>j+1;j++送盾半国)

{

if(lpCJ[j].cj>lpCJ[k].cj)

{

k=j;

}

}

if(验k!=i)

{

temp=lpCJ[i];

lpCJ[i]=lpCJ[k];

lpCJ[k]=temp;

//memcpy(&temp,&lpCJ[i],sizeof(struct_CJinf));

}

}

return0;

}

intmain()

{

//从键盘输入一个班(不超过30人)学生某门课的成绩

//当输入成绩为负值时,则输入结束,统计并输出不及格人数并打印不及格学生的成绩,按成绩高低排序,输出该班最高分及最低分。

struct_CJinf*CJinf,CJinfo[30],temp;

intsumStu;

inti;

sumStu=30;

//srand(time(**LL));

for(i=0;sumStu>i;i++)

{

wsprintf(CJinfo[i].kcName,"语文");

wsprintf(CJinfo[i].xsNum,"20103142%02d",i);

wsprintf(CJinfo[i].xsName,"学生_%02d",i);

//CJinfo[i].cj=(float)Radom(60,100);

printf("%s\t:%s的成绩:",CJinfo[i].xsName,CJinfo[i].kcName);

fflush(stdin);

scanf("%f",&CJinfo[i].cj);

if(CJinfo[i].cj100.0)

{

printf("\t[输入的成绩有误了:%.2f,请重新输入]

",CJinfo[i].cj);

i--;

conti**e;

}

}

sumStu=i;

printf("

全体学生的信息:

");

for(i=0;sumStu>i;i++)

{

temp=CJinfo[i];

printf("%s\t:%s\t%.0f

",temp.xsName,temp.kcName,temp.cj);

}

CJinf=CJinfo;

print_fail(CJinf,sumStu);

print_sort(CJinf,sumStu);

printf("

排序后的信息:

");

for(i=0;sumStu>i;i++)

{

temp=CJinfo[i];

printf("%s\t:%s\t%.0f

",temp.xsName,temp.kcName,temp.cj);

}

temp=CJinfo[0];

printf("

最高分:%.1f\t(%s)

",temp.cj,temp.xsName);

temp=CJinfo[sumStu-1];

printf("最低分:%.1f\t(%s)

",temp.cj,temp.xsName);

printf("平均分:%.2f

",print_**r(CJinf,sumStu));

return0;

}