程序设计与问题求解下实验答案Word下载.docx
- 文档编号:13707657
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:45
- 大小:25.10KB
程序设计与问题求解下实验答案Word下载.docx
《程序设计与问题求解下实验答案Word下载.docx》由会员分享,可在线阅读,更多相关《程序设计与问题求解下实验答案Word下载.docx(45页珍藏版)》请在冰豆网上搜索。
floatscore;
//学生分数
}Student;
intReadScore(Studentstu[]);
intGetFail(Studentstu[],intn);
floatGetAver(Studentstu[],intn);
intGetAboveAver(Studentstu[],intn);
voidGetDetail(Studentstu[],intn);
main()
intn,fail,aboveAver;
Studentstu[ARR_SIZE];
printf("
Pleaseenternumandscoreuntilscore<
0:
\n"
);
n=ReadScore(stu);
Totalstudents:
%d\n"
n);
fail=GetFail(stu,n);
Failstudents=%d\n"
fail);
aboveAver=GetAboveAver(stu,n);
Aboveaverstudents=%d\n"
aboveAver);
GetDetail(stu,n);
}
/*函数功能:
从键盘输入一个班学生某门课的成绩及其学号
当输入成绩为负值时,输入结束
函数参数:
存放学生信息的Student结构体数组
函数返回值:
学生总数
*/
intReadScore(Studentstu[])
inti=0;
scanf("
%ld%f"
&
stu[i].num,&
stu[i].score);
while(stu[i].score>
=0)
{
i++;
scanf("
}
returni;
统计不及格人数并打印不及格学生名单
存放学生信息的Student结构体数组
整型变量n,存放学生总数
不及格人数
intGetFail(Studentstu[],intn)
inti,count;
Fail:
\nnumber--score\n"
count=0;
for(i=0;
i<
n;
i++)
if(stu[i].score<
60)
{
printf("
%ld------%.0f\n"
stu[i].num,stu[i].score);
count++;
}
returncount;
计算全班平均分
平均分
floatGetAver(Studentstu[],intn)
inti;
floatsum=0;
sum=sum+stu[i].score;
returnsum/n;
统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单
成绩在全班平均分及平均分之上的学生人数
intGetAboveAver(Studentstu[],intn)
floataver;
aver=GetAver(stu,n);
aver=%f\n"
aver);
Aboveaver:
if(stu[i].score>
=aver)
统计各分数段的学生人数及所占的百分比
无
voidGetDetail(Studentstu[],intn)
inti,j,stuLevel[6];
6;
stuLevel[i]=0;
j=0;
else
j=((int)stu[i].score-50)/10;
stuLevel[j]++;
if(i==0)
<
60%d%.2f%%\n"
stuLevel[i],
(float)stuLevel[i]/(float)n*100);
elseif(i==5)
%d%d%.2f%%\n"
(i+5)*10,stuLevel[i],
%d--%d%d%.2f%%\n"
(i+5)*10,(i+5)*10+9,
stuLevel[i],(float)stuLevel[i]/(float)n*100);
2.成绩排名次
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。
要求:
(1)计算每个学生的总分和平均分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;
(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数
#defineSTU30
//学号
//平均分
intsum;
//总分
intmath;
//数学(MT)
intenglish;
//英语(EN)
intphysics;
//物理(PH)
voidInput(Studentstu[],intn);
voidGetSumAver(Studentstu[],intn);
voidSort(Studentstu[],intn);
voidPrint(Studentstu[],intn);
intSearch(Studentstu[],intn,longx);
intn,pos;
longx;
Studentstu[STU];
Pleaseenterthetotalnumberofthestudents(n<
=30):
"
%d"
n);
/*输入参加考试的学生人数*/
EnterNo.andscoreas:
MTENPH\n"
Input(stu,n);
/*输入学生成绩*/
GetSumAver(stu,n);
/*计算总分和平均分*/
Beforesort:
Print(stu,n);
Sort(stu,n);
/*排名次*/
Aftersort:
Pleaseentersearchingnumber:
%ld"
x);
/*以长整型格式输入待查找学生的学号*/
pos=Search(stu,n,x);
/*名次查询*/
if(pos!
=-1)
printf("
position:
\tNO\tMT\tEN\tPH\tSUM\tAVER\n"
%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%5.0f\n"
pos+1,stu[pos].num,stu[pos].math,stu[pos].english,
stu[pos].physics,stu[pos].sum,stu[pos].aver);
else
Notfound!
/*函数功能:
输入某班学生期末考试三门课程成绩
函数参数:
结构体数组stu,存放学生信息
整型变量n,存放学生人数
函数返回值:
voidInput(Studentstu[],intn)
stu[i].num);
stu[i].math);
stu[i].english);
stu[i].physics);
计算每个学生的总分和平均分
整型变量n,存放学生人数
voidGetSumAver(Studentstu[],intn)
stu[i].sum=stu[i].english+stu[i].math+stu[i].physics;
stu[i].aver=(float)stu[i].sum/3;
按总分成绩由高到低排出成绩的名次
整型变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 问题 求解 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)