C语言程序设计(第3版_乌云高娃)同步实训指导参考答案2.1 (19)[4页]

时间:2022-06-13 12:14:36 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
深圳职业技术学院



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