版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——C语言苏小红第五版十三章试验题答案
C语言苏小红第五版十三章试验题答案
#includestdio.h
#includestring.h
#includestdlib.h
#defineN30
#defineMAX_LEN10
#defineM3
typedefstructstudent
{
longstudentID;
charstudentName[10];
intscore[3];
}STUDENT;
voidInputScore(STUDENTstu[],intn);
voidSumforCorse(STUDENTstu[],intn,floatsumcorse[],floatavercorse[]);
voidSumforStudent(STUDENTstu[],intn,floatsumstudent[],floataverstudent[]);
voidDateScore(STUDENTstu[],intn,int(*compare)(inta,intb));
voidDateNum(STUDENTstu[],intn);
voidDateName(STUDENTstu[],intn);
intLinSearch(STUDENTstu[],longx,intn);
intLinSearchname(STUDENTstu[],charname[],intn);
voidRateScore(STUDENTstu[],intn);
voidPrintfScoreNum(STUDENTstu[],intn,floatsumcorse[],floatavercorse[]);
voidPrintf(STUDENTstu[],intn);
voidSwapnum(long*a,long*b);
voidSwapsum(int*a,int*b);
voidSwapscore(int*a,int*b);
intAscending(inta,intb);
intDescending(inta,intb);
voidWritetoFile(STUDENTstu[],intn);
intReadfromFILE(STUDENTstu[]);
main()
{intn,m,pos=0,i;
longx=0;
floatavercorse[3]={0},averstudent[N]={0},sumcorse[3]={0},sumstudent[N]={0};
charname[MAX_LEN];
STUDENTstu[N];
printf(howmanystudent?);
scanf(%d,n);
InputScore(stu,n);
printf(计算每门课程的总分和平均分输入1\n);
printf(计算每个学生的总分和平均分输入2\n);
printf(按每个学生的总分由高到低输入3\n);
printf(依照每个学生的总分由低到高输入4\n);
printf(学号有小到大排出成绩表输入5\n);
printf(按姓名在字典中的排序输入6\n);
printf(按学号查询学生排名及各科考试成绩比输入7\n);
printf(按姓名查询学生排名及各科考试成绩比输入8\n);
printf(按成绩百分比输入9\n);
printf(输出每个学生的学号姓名各科考试成绩总分平均分及每门课程的总分平均分输入10\n);
printf(将学生信息写入文件输入11:\n);
printf(从文件中读取学生信息输入12:\n);
scanf(%d,m);
switch(m)
{
case1:
SumforCorse(stu,n,sumcorse,avercorse);
break;
case2:
SumforStudent(stu,n,sumstudent,averstudent);
break;
case3:
DateScore(stu,n,Descending);
Printf(stu,n);
break;
case4:
DateScore(stu,n,Ascending);
Printf(stu,n);
break;
case5:
DateNum(stu,n);
Printf(stu,n);
break;
case6:
DateName(stu,n);
Printf(stu,n);
break;
case7:
{intj;
DateScore(stu,n,Descending);
printf(inputthenumberyouwanttosearch:);
scanf(%ld,x);
pos=LinSearch(stu,x,n);
if(pos!=-1)
printf(MT\tEN\tPH\t:\n);
for(j=0;j3;j++)
{
printf(%d\t,stu[pos].score[j]);
}
printf(第%d名\n,pos+1);
break;
}
case8:
{intj;
DateScore(stu,n,Descending);
printf(inputthenameyouwanttosearch:\n);
scanf(%s,name);
pos=LinSearchname(stu,name,n);
if(pos!=-1)
printf(MT\tEN\tPH\t:\n);
for(j=0;j3;j++)
{printf(%d\t,stu[pos].score[j]);}
}
printf(第%d名\n,pos+1);
break;
C语言苏小红第五版十三章试验题答案
case9:
RateScore(stu,n);
break;
case10:
PrintfScoreNum(stu,n,sumcorse,avercorse);
break;
case11:
WritetoFile(stu,n);
break;
case12:
i=ReadfromFILE(stu);
Printf(stu,i);
break;
}
}
voidInputScore(STUDENTstu[],intn)
{
inti,j,m=3;
for(i=0;in;i++)
{
printf(inputthe%dstudentIDnamescore(MTENPH):,i+1);
scanf(%ld,stu[i].studentID);
scanf(%s,stu[i].studentName);
for(j=0;jm;j++)
{
scanf(%d,stu[i].score[j]);
}
}
}
voidSumforCorse(STUDENTstu[],intn,floatsumcorse[],floatavercorse[])
{
inti,j;
for(j=0;j3;j++)
{
for(i=0;in;i++)
{
sumcorse[j]=sumcorse[j]+stu[i].score[j];
}
avercorse[j]=sumcorse[j]/n;
switch(j)
{
case0:
printf(theMTtotleMT:%f\n,sumcorse[j]);
printf(theMTaverMT:%f\n,avercorse[j]);
break;
case1:
printf(theENtotleEN:%f\n,sumcorse[j]);
printf(theENaverEN:%f\n,avercorse[j]);
break;
case2:
printf(thePHtotlePH:%f\n,sumcorse[j]);
printf(thePHaverPH:%f\n,avercorse[j]);
break;
}
}
}
voidSumforStudent(STUDENTstu[],intn,floatsumstudent[],floataverstudent[])
{
inti,j;
for(i=0;in;i++)
{
for(j=0;j3;j++)
{
sumstudent[i]=sumstudent[i]+stu[i].score[j];
}
averstudent[i]=sumstudent[i]/3;
printf(第%d个thetotlescoreandaverageis%f%f\n,i+1,sumstudent[i],averstudent[i]);
}
}
voidDateScore(STUDENTstu[],intn,int(*compare)(inta,intb))
{inti,j,k,m,t,sumstudent[N];
chartemp[MAX_LEN];
for(i=0;in;i++)
{
for(j=0;j3;j++)
{
sumstudent[i]=sumstudent[i]+stu[i].score[j];
}
}
for(t=0;tn-1;t++)
{
k=t;
for(m=t+1;mn;m++)
{
if((*compare)(sumstudent[k],sumstudent[m]))
{
k=m;
}
if(k!=t)
{
Swapsum(sumstudent[t],sumstudent[k]);
Swapnum(stu[t].studentID,stu[k].studentID);
Swapscore(stu[t].score,stu[k].score);
strcpy(temp,stu[t].studentName);
strcpy(stu[t].studentName,stu[k].studentName);
strcpy(stu[k].studentName,temp);
}
}
}
}
voidSwapsum(int*a,int*b)
{inttemp;
temp=*a;
*a=*b;
*b=temp;
}
voidSwapnum(long*a,long*b)
{
longtemp;
temp=*a;
*a=*b;
*b=temp;
}
voidSwapscore(int*a,int*b)
{
inttemp[M],i;
for(i=0;i3;i++)
{temp[i]=a[i];
a[i]=b[i];
b[i]=temp[i];
}
}
intAscending(inta,intb)
{
returnab;
}
intDescending(inta,intb)
{
returnab;
}
voidDateNum(STUDENTstu[],intn)
{
inti,j,k;
chartemp[MAX_LEN];
for(i=0;in-1;i++)
{
k=i;
for(j=i+1;jn;j++)
{
if(stu[j].studentIDstu[k].studentID)
{k=j;
}
if(k!=i)
{
Swapnum(stu[i].studentID,stu[k].studentID);
Swapscore(stu[k].score,stu[i].score);
strcpy(temp,stu[i].studentName);
strcpy(stu[i].studentName,stu[k].studentName);
strcpy(stu[k].studentName,temp);
}
}
}
}
voidDateName(STUDENTstu[],intn)
{
inti,j,k;
chartemp[MAX_L
EN];
for(i=0;in;i++)
{
k=i;
for(j=i+1;jn;j++)
{if(strcmp(stu[k].studentName,stu[j].studentName)0)
{
Swapnum(stu[i].stude
C语言苏小红第五版十三章试验题答案
ntID,stu[k].studentID);
Swapscore(stu[i].score,stu[k].score);
strcpy(temp,stu[i].studentName);
strcpy(stu[i].studentName,stu[k].studentName);
strcpy(stu[k].studentName,temp);
}
}
}
}
intLinSearch(STUDENTstu[],longx,intn)
{
inti;
for(i=0;in;i++)
{
if(stu[i].studentID==x)
returni;
}
return-1;
}
intLinSearchname(STUDENTstu[],charname[],intn)
{
inti;
for(i=0;in;i++)
{
if(strcmp(name,stu[i].studentName)==0)
returni;
}
return-1;
}
voidRateScore(STUDENTstu[],intn)
{
inti,a,b,c,d,e,j;
staticfloatrate1,rate2,rate3,rate4,rate5;
for(j=0;j3;j++)
{
a=0;b=0;c=0;d=0;e=0;
for(i=0;in;i++)
{if(stu[i].score[j]=90stu[i].score[j]=100)
{a++;
}
if(stu[i].score[j]=80stu[i].score[j]90)
{b++;
}
if(stu[i].score[j]=70stu[i].score[j]80)
{c++;
}
if(stu[i].score[j]=60stu[i].score[j]70)
{d++;
}
if(stu[i].score[j]=0stu[i].score[j]60)
{e++;
}
rate1=(float)a/n;
rate2=(float)b/n;
rate3=(float)c/n;
rate4=(float)d/n;
rate5=(float)e/n;
}
switch(j)
{
case0:
printf(MTis:\n);
printf(优秀:%d所占百分比:%f\n,a,rate1);
printf(良好:%d所占百分比:%f\n,b,rate2);
printf(中等:%d所占百分比:%f\n,c,rate3);
printf(及格:%d所占百分比:%f\n,d,rate4);
printf(不及格:%d所占百分比:%f\n,e,rate5);
break;
case1:
printf(ENis:\n);
printf(优秀:%d所占百分比:%f\n,a,rate1);
printf(良好:%d所占百分比:%f\n,b,rate2);
printf(中等:%d所占百分比:%f\n,c,rate3);
printf(及格:%d所占百分比:%f\n,d,rate4);
printf(不及格:%d所占百分比:%f\n,e,rate5);
break;
case2:
printf(PHis:\n);
printf(优秀:%d所占百分比:%f\n,a,rate1);
printf(良好:%d所占百分比:%f\n,b,rate2);
printf(中等:%d所占百分比:%f\n,c,rate3);
printf(及格:%d所占百分比:%f\n,d,rate4);
printf(不及格:%d所占百分比:%f\n,e,rate5);
break;
}
}
}
voidPrintfScoreNum(STUDENTstu[],intn,floatsumcorse[],floatavercorse[])
{
inti,j,k;
for(i=0;in;i++)
{
printf(%ld,stu[i].studentID);
puts(stu[i].studentName);
printf(thescoreMT\tEN\tPH\t\n:);
for(j=0;j3;j++)
{
printf(%d\t,stu[i].score[j]);
}
printf(\n);
}
for(j=0;j3;j++)
{
for(i=0;in;i++)
{
sumcorse[j]=sumcorse[j]+stu[i].score[j];
}
avercorse[j]=sumcorse[j]/n;
}
for(k=0;k3;k++)
{
printf(thesumandaveris%f%f\n,sumcorse[k],avercorse[k]);
}
}
voidPrintf(STUDENTstu[],intn)
{
inti,j;
for(i=0;in;i++)
{
printf(%ld\n,stu[i].s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土采购与支付协议
- 环保区域违法车辆拖移服务方案
- 酒店行业新冠疫情应急响应预案
- 2023年下半年安全生产管理方案
- 2021年特岗音乐教师评估与反馈总结
- 医疗机构售后服务流程方案
- 基于物联网的智慧工地方案
- 职业培训机构收费公示制度的合规性分析
- 2024-2030年中国融资租赁产业前景趋势规划分析报告
- 2024-2030年中国茶叶行业产销率调查及未来发展趋势分析报告
- 口腔常见疾病的诊治
- MOOC 人像摄影-中国传媒大学 中国大学慕课答案
- MOOC 计算机组成原理-电子科技大学 中国大学慕课答案
- 2024年江苏无锡市江阴市江南水务股份有限公司招聘笔试参考题库含答案解析
- 中学教材、教辅征订管理制度
- (高清版)DZT 0213-2002 冶金、化工石灰岩及白云岩、水泥原料矿产地质勘查规范
- 消防安全评估消防安全评估方案
- 工程造价专业《工程经济》课程标准
- ZARA服装市场营销策略研究分析 市场营销专业
- 设备维保的市场化运作与服务模式创新
- 幼儿园科普知识宣传
评论
0/150
提交评论