【编程小练习】学生成绩简单统计
2015-03-21 10:43
573 查看
写一个程序,读入10名学生的成绩。每个学生的数据,包含一个不带空格的名字(不超过19个字符),以及三门课的成绩,每门课的成绩是1到5的整数。程序要输出如下的一个列表,对每个学生输出他的录入时的序号、名字、三门课的成绩和平均成绩(浮点表示),最后输出每门课的平均成绩(浮点表示)和最低最高成绩。
结果如下:
// Hello_C.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdio.h" //#include "stdlib.h" //#include "string.h" typedef struct { char name[20]; int score[3]; } Student; // 输入一个学生的数据 Student* student_input(Student *pStudent); // 输出一个学生的数据,包括平均成绩 void student_print(const Student *pStudent); // 计算一个学生的平均成绩 double student_average(const Student *pStudent); // 获得学生的一个成绩 int student_get_score(const Student *pStudent, int index); // 计算一门课的平均成绩 double score_average(const Student * const *pStudent, int index); // 计算一门课的最高成绩 int score_max(const Student *pStudent, int index); // 计算一门课的最低成绩 int score_min(const Student *pStudent, int index); // 输出每门课的平均成绩 void average(const Student *pStudent); // 输出每门课的最高成绩 void max(const Student *pStudent); // 输出每门课的最低成绩 void min(const Student *pStudent); const int num=10;//学生数 void main() { Student student[num]; Student *stu; stu=&student[0]; //依次输入10个学生的数据 for (int i=0;i<num;i++) { printf("请依次输入学生%d的姓名和三个成绩:\n",i+1); student_input(&student[i]); } //输出10个学生的分数和平均分 printf("no\tname\tscore1\tscore2\tscore3\taverage\n"); for (int i=0;i<num;i++) { printf("%d\t",i+1); student_print(stu+i); } average(stu); max(stu); min(stu); } Student* student_input(Student *pStudent) { scanf("%s%d%d%d",pStudent->name,&(pStudent->score[0]),&(pStudent->score[1]),&(pStudent->score[2])); return pStudent; } // 输出一个学生的数据,包括平均成绩 void student_print(const Student *pStudent) { printf("%s\t",pStudent->name); for (int i=0;i<3;i++) { printf("%d\t",pStudent->score[i]); } printf("%.1f\n",student_average(pStudent)); } // 计算一个学生的平均成绩 double student_average(const Student *pStudent) { int sum=0; for (int i=0;i<3;i++) { sum+=student_get_score(pStudent,i); } return sum/3.0; } //获得学生的一个成绩 int student_get_score(const Student *pStudent, int index) { return pStudent->score[index]; } // 计算一门课的平均成绩 double score_average( const Student *pStudent, int index) { double sum=0; for (int i=0;i<num;i++) { sum+=student_get_score(pStudent+i,index); } return sum/num; } // 计算一门课的最高成绩 int score_max(const Student *pStudent, int index) { int temp=pStudent->score[index]; for (int i=1;i<num;i++) { if (temp<(pStudent+i)->score[index]) temp=(pStudent+i)->score[index]; } return temp; } // 计算一门课的最低成绩 int score_min(const Student *pStudent, int index) { int temp=pStudent->score[index]; for (int i=1;i<num;i++) { if (temp>(pStudent+i)->score[index]) temp=(pStudent+i)->score[index]; } return temp; } // 输出每门课的平均成绩 void average(const Student *pStudent) { printf("average\t"); for (int i=0;i<3;i++) { printf("%.1f\t",score_average(pStudent,i)); } printf("\n"); } // 输出每门课的最高成绩 void max(const Student *pStudent) { printf("max\t"); for (int i=0;i<3;i++) { printf("%d\t",score_max(pStudent,i)); } printf("\n"); } // 输出每门课的最低成绩 void min(const Student *pStudent) { printf("min\t"); for (int i=0;i<3;i++) { printf("%d\t",score_min(pStudent,i)); } printf("\n"); }
结果如下:
相关文章推荐
- 简单编程(十九)定义一个数组来存储12个学生的成绩。统计各成绩等级
- 简单编程(十八)定义一个数组来存储12个学生的成绩
- C语言结构学习-学生成绩简单统计
- 代码练习系列:问题 A 统计同成绩学生人数
- 8.4输入某班学生某门课的成绩,用函数编程统计不及格人数
- ACM编程比赛入门题目之统计同成绩学生人数
- Java基础编程小练习---(数组)学生成绩管理系统
- JAVA-练习循环录入Java课的学生成绩,统计分数大于等于80分的学生比例
- 【C++简单案例解决】1.统计学生成绩
- 结构体练习统计学生成绩
- [List和HashMap—练习]——统计学生成绩,并打印
- c结构体的初使用(学生成绩简单统计)
- 输入某学生的成绩(最多不超过40人),用函数编程统计不及格的人数。
- 输入某班学生(不超过40人)的某门课成绩,编程统计不及格的人数(以-1为成绩输入结束标志)
- 学生cpp成绩统计 【基类派生类练习】
- 九度-简单题 题目1018:统计同成绩学生人数
- 学生成绩简单统计
- 学生成绩简单统计-结构体的应用-浙大第三周作业
- ACM HDU 1235 统计同成绩学生人数(超级简单水题)
- Hadoop MapReduce编程 API入门系列之统计学生成绩版本2(十八)