- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 数组、结构体和函数综合编程练习
1.学生成绩统计
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别下列:
(1)统计不及格人数并打印不及格学生名单(2)统计成绩在全班平均分及平均分之上的学生人数并打印学生名单(3)统计各分数段的学生人数及所占的百分比60分以下为第0段,60~69为第1段,70~79为第2段,80~89为第3段,90~99为第4段,100分为第5段。
编程要求:
1.较好的用户输入输出提示信息
2.使用子函数来实现上述各个功能,并且要使用结构体数组来实现,该结构体中包括学生学号和成绩
3.最好不要使用全局变量
#include stdio.h
#define ARR_SIZE 30
typedef struct tagStudent
{
long num;//学生学号
float score;//学生分数
}Student;
int ReadScore(Student stu[]);
int GetFail(Student stu[], int n);
float GetAver(Student stu[], int n);
int GetAboveAver(Student stu[], int n);
void GetDetail(Student stu[], int n);
main()
{
int n, fail, aboveAver;
Student stu[ARR_SIZE];
printf(Please enter num and score until score0:\n);
n = ReadScore(stu);
printf(Total students:%d\n, n);
fail = GetFail(stu, n);
printf(Fail students = %d\n,fail);
aboveAver = GetAboveAver(stu, n);
printf(Above aver students = %d\n, aboveAver);
GetDetail(stu, n);
}
/*函数功能:从键盘输入一个班学生某门课的成绩及其学号
当输入成绩为负值时,输入结束
函数参数: 存放学生信息的Student结构体数组
函数返回值:学生总数
*/
int ReadScore(Student stu[])
{
int i = 0;
scanf(%ld%f, stu[i].num, stu[i].score);
while (stu[i].score = 0)
{
i++;
scanf(%ld%f, stu[i].num, stu[i].score);
}
return i;
}
/*函数功能:统计不及格人数并打印不及格学生名单
函数参数:存放学生信息的Student结构体数组
整型变量n,存放学生总数
函数返回值:不及格人数
*/
int GetFail(Student stu[], int n)
{
int i, count;
printf(Fail:\nnumber--score\n);
count = 0;
for (i=0; in; i++)
{
if (stu[i].score 60)
{
printf(%ld------%.0f\n, stu[i].num, stu[i].score);
count++;
}
}
return count;
}
/*函数功能:计算全班平均分
函数参数:存放学生信息的Student结构体数组
整型变量n,存放学生总数
函数返回值:平均分
*/
float GetAver(Student stu[], int n)
{
int i;
float sum = 0;
for (i=0; in; i++)
{
sum = sum + stu[i].score;
}
return sum/n;
}
/*函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单
函数参数:存放学生信息的Student结构体数组
整型变量n,存放学生总数
函数返回值:成绩在全班平均分及平均分之上的学生人数
*/
int GetAboveAver(Student stu[], int n)
{
int i, count;
float aver;
aver = GetAver(stu, n);
printf(aver = %f\n, aver);
printf(Above aver:\nnumber--score\n);
count = 0;
for (i=0; in; i++
您可能关注的文档
- Doc图书馆管理信息系统课程设计报告书.doc
- dowhile循环结构程序设计教(学)案.doc
- DSP复习试题和答案.doc
- GHTF_SG3_N99_10_2004质量管理体系_过程确认指南_中文word版本.doc
- GIS林地管理系统方案.doc
- IT软件产品采购合同_中国移动.doc
- Java安卓开发外卖订餐系统课程设计报告书.doc
- java程序设计的编程.doc
- Java程序设计课后练习答案.doc
- LTE考试题和答案解析.doc
- 人教版数学六年级上册 第一单元 第5课时 分数乘小数.pptx
- 人教版数学六年级上册 第四单元 第3课时 比的应用.pptx
- 人教版数学六年级上册 第五单元 第5课时 圆的面积-2.pptx
- 人教版数学六年级上册 第一单元 第7课时 解决问题-1.pptx
- 人教版数学六年级下册 第二单元 第4课时 利率.pptx
- 人教版数学六年级上册 第一单元 第8课时 解决问题-2.pptx
- 人教版数学六年级下册 第五单元 第2课时 鸽巢问题的一般形式.pptx
- 人教版数学六年级下册 第四单元 整理和复习.pptx
- 人教版数学六年级上册 第一单元 第3课时 分数乘分数-1.pptx
- 人教版数学六年级下册 第六单元复习第2课时 可能性.pptx
文档评论(0)