例 9.7 有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。

C程序设计(第四版) 谭浩强 例9.7 个人设计

例 9.7 有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。

代码块:

方法1:

#include 
//定义结构体变量并初始化
struct student{
	int num;
	char name[10];
	float score[3];
	float aver;
} stu[3];
void input(struct student stu[]);            //定义输入函数
struct student max(struct student stu[]);    //定义最高成绩函数
void print(struct student stud);             //定义输出函数
int main()
{
	struct student *p=stu;                   //定义指针指向结构体变量首地址
	input(p);                                //调用输入函数
	print(max(p));                           //调用输出函数
	return 0;
}
//输入函数
void input(struct student stu[])
{
	int i, j;
	float sum;
	for (i=0; i<3; i++){
		printf("Please enter No.%d student num, name, score: ", i+1);
		scanf("%d %s", &stu[i].num, stu[i].name);
		for (j=0, sum=0.0; j<3; scanf("%f", &stu[i].score[j]), sum+=stu[i].score[j++]);
		stu[i].aver=sum/3.0;
	}
}
//最高成绩函数
struct student max(struct student stu[])
{
	int i, j;
	struct student temp;
	for (i=0; i<3; i++)
		for (j=i+1; j<3; stu[i].aver

方法2:

#include 
#include 
struct Student{
	int num;
	char name[20];
	float score[3];
	float aver;
};
void input(Student *st, int n);
Student max(Student *st);
void print(Student st);
int main()
{
	Student *stu;
	stu=(Student*)malloc(3*sizeof(Student));
	input(stu, 3);
	print(max(stu));
	system("pause");
	return 0;
}
void input(Student *st, int n)
{
	int i, j;
	float sum;
	for (i=0; imax ? max=st[i].aver, m=i++ : i++);
	return st[m];
}

你可能感兴趣的:(个人设计)