问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求帮忙解决一道C语言程序设计的题,用大一的知识点。

发布网友 发布时间:2022-04-28 14:09

我来回答

1个回答

热心网友 时间:2022-06-18 23:53

#include<stdio.h>
#include<string.h>
struct student
{
char num[8];
char name[10];
int cgrade;
int mgarde;
int physics;
float ave;
};
int cmp(const void *a,const void *b)
{
struct student c=*(struct student*)a;
struct student d=*(struct student*)b;
return (d.cgrade+d.mgarde+d.physics)-(c.cgrade+c.mgarde+c.physics);
}
int main()
{
struct student stu[100];
int i,k,max[3],min[3],sum[3],num[9]={0};
for(i=0;i<3;i++)
{
max[i]=0;
min[i]=200;
sum[i]=0;
}
FILE *fp;
fp=fopen("文件路径,\用\\代替","r");        //这里填你的txt路径 
printf("  学号        姓名      平均分\n");
for(i=0;!feof(fp);i++) 
{
fscanf(fp,"%s%s%d%d%d%f",&stu[i].num,&stu[i].name,&stu[i].cgrade,&stu[i].mgarde,&stu[i].physics,&stu[i].ave);
printf("%7s %10s %10.1f\n",stu[i].num,stu[i].name,stu[i].ave);
}
for(k=0;k<i;k++)
{
sum[0]+=stu[k].cgrade;
sum[1]+=stu[k].mgarde;
sum[2]+=stu[k].physics;
if(max[0]<stu[k].cgrade) max[0]=stu[k].cgrade;
if(max[1]<stu[k].mgarde) max[1]=stu[k].mgarde;
if(max[2]<stu[k].physics) max[2]=stu[k].physics;
if(min[0]>stu[k].cgrade) min[0]=stu[k].cgrade;
if(min[1]>stu[k].mgarde) min[1]=stu[k].mgarde;
if(min[2]>stu[k].physics) min[2]=stu[k].physics;
if(stu[k].cgrade>=90) num[0]++;
if(stu[k].cgrade>=60) num[1]++;
if(stu[k].cgrade<60) num[2]++;
if(stu[k].mgarde>=90) num[3]++;
if(stu[k].mgarde>=60) num[4]++;
if(stu[k].mgarde<60) num[5]++;
if(stu[k].physics>=90) num[6]++;
if(stu[k].physics>=60) num[7]++;
if(stu[k].physics<60) num[8]++;
 }
printf("\nC语言最高分:%d 最低分:%d\n高数最高分:%d 最低分:%d\n物理最高分:%d 最低分:%d\n",max[0],min[0],max[1],min[1],max[2],min[2]);
printf("\nC语言平均分:%.1f\n高数平均分:%.1f\n物理平均分:%.1f",(float)sum[0]/i,(float)sum[1]/i,(float)sum[2]/i);
printf("\nC语言优秀人数:%d 及格人数:%d 不及格人数:%d\n高数优秀人数:%d 及格人数:%d 不及格人数:%d\n物理优秀人数:%d 及格人数:%d 不及格人数:%d\n",num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8]);
qsort(stu,i,sizeof(stu[0]),cmp);
printf("\n排序后\n\n  学号        姓名        总分\n");
for(k=0;k<i;k++)
printf("%7s %10s %10d\n",stu[k].num,stu[k].name,stu[k].cgrade+stu[k].mgarde+stu[k].physics);
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 怎样用快影去除图片上的字除去? c语言编程 要大一知识喔 长春在哪学做蛋糕,精制糕点好一点? 长春哪有专业的蛋糕培训? 大一c语言的主要内容 长春哪里学做甜点好? 求2010大一C语言期末考复习资料一份 长春哪里学西点好? 进大一c语言的前两章重要知识点 长春哪有好的西点培训班? 长春有哪些靠谱的西点蛋糕培训班? 用大一的C语言知识解决问题? 兰理工大一c语言知识点 硒维康口嚼片怎么样呢?多吃补锌的食物是否有帮助呢 大一C语言都考哪些类型的题目 大一新生学习c语言感到困难,需要什么资料书补充课外知识 体恒健牌硒维康口嚼片化疗病人吃了好不好啊?我听人说网上有卖的 是不是真的? 大一第一学期c语言名词解释 大一,刚刚开始学c语言,感觉好多东西都不懂,概念也不清楚,望大神教导怎么学,重点在哪? 大一c语言知识 学西点蛋糕以后自己开店难么?长春哪里能学? 大一c语言考试题(急) 长春西点法式烘焙蛋糕培训哪家学校好 得物怎么给客服好评 长春学蛋糕去哪里学 如何评论一个客服很好 长春学做蛋糕难吗,一般要学多久? 给淘宝客服好评怎么写 长春学习蛋糕制作比较专业的学校? 如何给中国移动客服好评 长春哪学西点最好,只要长春。 快影智能配音怎么把字去掉 香港局势现在稳定吗?去香港旅游会不会有问题 想要学蛋糕制作,长春不知道在哪有类似的培训 保持香港长期繁荣稳定,中国政府应有怎样的严正立场? 移动怎么给客服好评 长春学习做蛋糕去哪里学 最近香港稳定了吗 为什么发视频会有快影两个字? 长春学做蛋糕需要多久能学会?