C语言 苏小红 第五版 十三章试验题答案_第1页
C语言 苏小红 第五版 十三章试验题答案_第2页
C语言 苏小红 第五版 十三章试验题答案_第3页
C语言 苏小红 第五版 十三章试验题答案_第4页
C语言 苏小红 第五版 十三章试验题答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论