C语言程序设计(第3版_乌云高娃)同步实训指导参考答案2.1 (19)[4页]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
深圳职业技术学院 C语言程序设计 同步实训指导参考答案 序号:8.3 任务1: /* 请编写程序存储所输入的成绩,在程序中编写一个函数比较两个学生的成绩,将平均分数较高的同学的成绩单输出。 */ #include "stdio.h" struct student { char chName[8]; int iMiddle,iFinal; float fAve; }; /*定义结构体类型*/ void compare(struct student stu1, struct student stu2); void compare(struct student stu1, struct student stu2) { if(stu1.fAve > stu2.fAve) printf("%s:%d %d %0.1f", stu1.chName, stu1.iMiddle, stu1.iFinal, stu1.fAve); else printf("%s:%d %d %0.1f", stu2.chName, stu2.iMiddle, stu2.iFinal, stu2.fAve); } void main() { struct student stuInfo1, stuInfo2; printf("Please input 2 student's scores:\n"); scanf("%s %i %i",stuInfo1.chName, &stuInfo1.iMiddle, &stuInfo1.iFinal); /*输入学生信息*/ scanf("%s %i %i",stuInfo2.chName, &stuInfo2.iMiddle, &stuInfo2.iFinal); /*输入学生信息*/ stuInfo1.fAve = (stuInfo1.iMiddle + stuInfo1.iFinal) / 2; /*计算学生的平均分*/ stuInfo2.fAve = (stuInfo2.iMiddle + stuInfo2.iFinal) / 2; compare (stuInfo1, stuInfo2); getch(); } 1 深圳职业技术学院 任务2: /* C语言程序设计 在任务1的基础上,在程序中编写函数,将N个学生的数据输入,再编写一个函数统计总分和求并打印显示,最后编写一个函数,输出最高分的学生并打印显示。 */ #include "stdio.h" #define N 3 struct student { char chName[8]; int iMiddle,iFinal; float fAve; }; /*定义结构体类型*/ void inputInfo(struct student stu[]); void printInfo(struct student stu[]); void maxScore(struct student stu[]); void inputInfo(struct student stu[]) /*输入信息函数体*/ { int i; for(i=0; i /*循环提示输入*/ {
printf("Please input student %d info:\n", i); scanf("%s %i %i", stu[i].chName, &stu[i].iMiddle, &stu[i].iFinal); stu[i].fAve = (stu[i].iMiddle + stu[i].iFinal) / 2; } }
void printInfo(struct student stu[]) /*打印输出信息函数体*/ {
int i;
for(i=0; i /*循环打印输出*/ {
printf("Student %d info:", i); printf("%s %i %i %f\n", stu[i].chName, stu[i].iMiddle, stu[i].iFinal, stu[i].fAve); } }
void maxScore(struct student stu[]) /*打印最高分数学生信息函数体*/ {
int i,stuMax = 0; for(i=0; i /*逐个作最高分比较*/
2
深圳职业技术学院
{
if(stu[stuMax].fAve < stu[i].fAve) stuMax = i; }
C语言程序设计
printf("Top student info:", i); /*打印输出结果*/ printf("%s %i %i %f\n", stu[stuMax].chName, stu[stuMax].iMiddle, stu[stuMax].iFinal, stu[stuMax].fAve); }
void main() {
struct student stuInfo[N]; /*定义保存学生信息的数组*/ inputInfo(stuInfo); /*执行输入信息函数*/ printInfo(stuInfo); /*执行打印输出信息函数*/ maxScore(stuInfo); /*执行打印最高分数学生信息函数*/ getch(); }
任务3: /*
在任务1的基础上,在程序中编写函数,将两个学生的数据以参数的形式传入函数,在函数内比较后将成绩较高的学生信息以结构体的形式返回。打印输出返回的学生信息。 */
#include "stdio.h" struct student {
char chName[8]; int iMiddle,iFinal; float fAve; };
/*定义结构体类型*/
struct student compare(struct student stu1, struct student stu2);
/*比较学生成绩函数体*/
struct student compare(struct student stu1, struct student stu2) {
if(stu1.fAve > stu2.fAve) return stu1; else return stu2; }
3
本文来源:https://www.wddqw.com/doc/871850c2a68da0116c175f0e7cd184254b351b01.html