定义一个学生结构体并打印出学生信息(平均成绩、最高分)

/*定义一个Student结构体*/
typedef struct Student
{
     
	int num;       //学号
	char name[10]; //姓名
	float score[3];//三门课成绩
};

/*输入学生信息*/
void Input(Student *student,int n)
{
     
	printf("请输入学生信息:学号,姓名和三门课成绩\n");
	for (int i = 0; i < n; ++i)
	{
     
		printf("第%d个学生的信息:", i + 1);
		scanf("%d%s%f%f%f", &student[i].num, student[i].name, &student[i].score[0],
			&student[i].score[1], &student[i].score[2]);
	}
}

/*处理平均成绩*/
void Aver_score(const Student* student, int n)
{
     
	float sum1 = 0;//科目一的总成绩
	float sum2 = 0;//科目二的总成绩
	float sum3 = 0;//科目三的总成绩

	for (int i = 0; i < n; ++i)
	{
     
		sum1 += student[i].score[0];
		sum2 += student[i].score[1];
		sum3 += student[i].score[2];
	}
	printf("科目一的平均成绩:%5.1f\n科目二的平均成绩:%5.1f\n科目三的平均成绩:%5.1f\n", sum1 / n, sum2 / n, sum3 / n);
}

/*处理最高分*/
void Highest(const Student* student, int n)
{
     
	float highest = 0;//最高分学生的总成绩
	float tmp = 0;    //当前学生的总成绩
	int index = 0;    //最高分学生的下标

	for (int i = 0; i < n; ++i)
	{
     
		tmp = student[i].score[0] + student[i].score[1] + student[i].score[2];
		if (tmp > highest)
		{
     
			highest=tmp;
			index = i;
		}
	}

	printf("\n最高分学生的信息:学号:%d  姓名:% s  三门课成绩分别为: % 5.1f % 5.1f % 5.1f 总分:%5.1f\n",
		student[index].num,student[index].name, student[index].score[0], student[index].score[1],
		student[index].score[2], highest);
}

/*打印学生信息*/
void Printf(const Student *student,int n)
{
     
	for (int i = 0; i < n; ++i)
	{
     
		printf("学号:%d  姓名:%s  三门课成绩分别为:%5.1f  %5.1f  %5.1f\n",student[i].num,
			student[i].name, student[i].score[0], student[i].score[1], student[i].score[2]);
	}
}

int main()
{
     
	Student student [5];
	Input(student, sizeof(student)/sizeof(student[0]));
	printf("\n***************************************************************\n\n");

	Printf(student, sizeof(student) / sizeof(student[0]));
	printf("\n***************************************************************\n\n");

	Aver_score(student, sizeof(student) / sizeof(student[0]));
	Highest(student, sizeof(student) / sizeof(student[0]));

	return 0;
}

定义一个学生结构体并打印出学生信息(平均成绩、最高分)_第1张图片

你可能感兴趣的:(笔记)