c语言编程,要求如下

[复制链接]
查看11 | 回复1 | 2011-5-5 11:32:33 | 显示全部楼层 |阅读模式
有一个班的学生(不超过40人),每个学生的数据包括学号、姓名、五门课(英语、高数、马哲、经济学、计算机)的成绩。用C语言编制相应的管理程序,要求:
(1)从键盘输入各项数据,成绩保留1位小数位;
(2)按学号从小到大的顺序打印出每门课程的成绩表;
(3)查找并输出总分最高的学生的学号、姓名、各门课的成绩及平均分数。
回复

使用道具 举报

千问 | 2011-5-5 11:32:33 | 显示全部楼层
哥们,我给你一个程序参考吧!原理差不多!这种程序很花时间的啊,你看看我的吧
#includestdio.h#includestring.h#defineSTU30#defineCOURSE3voidInput(longnum[],intscore[][COURSE],intn,charname[][20]);voidCOURSESumAver(floatscore[][COURSE],intn);voidSTUSumAver(charname[][20],floatscore[][COURSE],intn);voidSumSort(floatscore[][COURSE],charname[][20],longnum[],intn);main(){inti,j,n,m;floatscore[STU][COURSE],s[STU];longnum[STU];charname[STU][20];printf(\"Pleaseinputtotalnumber(=30):\\n\");scanf(\"%d\",Input(num,score,n,name);printf(\"Thedatahasbeeninputed.\\n\");/*打印菜单*/printf(\"2.Caculatetotalandaveragescoreofeverycourse\\n\");printf(\"3.Caculatetotalandaveragescoreofeverystudent\\n\");printf(\"4.Sortindescendingorderbytotalscoreofeverystudent\\n\");printf(\"0.Exit\\n\");/*设置循环是可以重复查询*/do{printf(\"Pleaseenteryourchoice:\\n\");scanf(\"%d\",switch(m){case2:COURSESumAver(score,n);break;case3:STUSumAver(name,score,n);break;case4:SumSort(score,name,num,n);break;case0:printf(\"Exit\\n\");exit(0);break;}}while(i!=0);return0;}voidInput(longnum[],intscore[][COURSE],intn,charname[][20]){inti,j;if(n=30){printf(\"Pleaseenterthenumber,nameandscore:\\n\");for(i=0;in;i){scanf(\"%ld\\n\",gets(name);for(j=0;jCOURSE;j){scanf(\"%f\",}}}else{printf(\"Outofrange!\\n\");exit(0);}}/*计算学科的总分和平均分*/voidCOURSESumAver(floatscore[][COURSE],intn){inti,j;floatcoursesum[COURSE];charcoursename[COURSE][20];strcpy(coursename[0],\"MT\");strcpy(coursename[1],\"EN\");strcpy(coursename[2],\"PH\");for(i=0;iCOURSE;i){coursesum=0;for(j=0;jn;j){coursesum=coursesumscore[j];}printf(\"Thetotalscoreofsubject%s:%.1f\\n\",coursename,coursesum);printf(\"Theaveragescoreofsubject%s:%.1f\\n\",coursename,coursesum/n);}printf(\"Pleasegivecurrentitem!\\n\");}/*计算每个学生的总分和平均分*/voidSTUSumAver(charname[][20],floatscore[][COURSE],intn){inti,j;floatsum,aver;for(i=0;in;i){sum=0;for(j=0;jCOURSE;j){sum=sumscore[j];}aver=sum/COURSE;printf(\"Thetotalscoreofstudent%s:%.1f\\n\",name,sum);printf(\"Theaveragescoreofstudent%s:%.1f\\n\",name,aver);}printf(\"Pleasegivecurrentitem!\\n\");}/*按总分成绩由高到低排出成绩的名次*/voidSumSort(floatscore[][COURSE],charname[][20],longnum[],intn){inti,j,l;floattemp1;floats[STU];longtemp2;chartemp[20];for(i=0;in;i){s=0;for(j=0;jCOURSE;j){s=sscore[j];}}printf(\"Sortedresultastotalscoredescending:\\n\");for(i=0;in-1;i){for(j=i1;jn;j){if(ss[j]){temp2=num[j];num[j]=num;num=temp2;strcpy(temp,name);strcpy(name,name[j]);strcpy(name[j],temp);temp1=s[j];s[j]=s;s=temp1;}}}for(l=0;ln;l){printf(\"%ld,%s,%.1f\\n\",num[l],name[l],s[l]);}printf(\"Pleasegivecurrentitem!\\n\");}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行