
已解决问题
谷歌wangliangds用户在2021.11.06提交了关于“澳门C语言程序设计:从键盘输入一个班(不超过30人)学生某门课的成绩”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-26T20:58:38。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,你是我的宝贝,你是我的花,谢谢你对我的帮助!
详细问题描述及疑问:期待您的答案,你是我的宝贝,你是我的花,谢谢你对我的帮助!
#
#inc
#include"wind
intRadom(inta,intb)
{
returnrand()%(b-a+1)+a;
}
//定义一个结构
struct_CJinf{
charkcName[50];//课程名称
charxsNum[24];/
charxsName[50];//学生姓名
floatcj;//学生成绩
};
//求解平均分
floatprint_**r
{
i
f
for(i=0;len>i;i++)
{
fsum+=lpCJ[i].c
}
if(len>0)
{
fs
}
returnfsu
}
//统计不及格
int
{
inti,count=0;
for(i=0;l
if(60.0>lpCJ[
{
printf("%s\t:%s:%.1f
",lpCJ[i].xsName,l
count++;
}
printf("
统计不
",count
returncount;
}
//排序一下
intpri
{
inti,j,k;
struct_C
for(i=0;len>i;i++)
{
for(k=j=i;le
{
if(lpCJ[j].cj>lpCJ[k].cj
{
k=j;
}
}
if(
{
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;
}