• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
qyk123
博客园    首页    新随笔    联系   管理    订阅  订阅
C语言实验报告三

题目:编写一个程序,建立结构体类型表示一个学生的基本情况,包含以下成员项:学号、姓名、三门课的成绩、三门课的平均成绩。用该结构说明一个变量和一个指针,并完成成员项的输入、计算平均值、输出结果。

在以上结构的基本上建立一个班级学生的基本情况(数组)。计算出每个学生三门课的平均成绩,输出平均成绩最高的学生的各成员项值。以5个学生为例调试程序。

思路:

  1. 定义结构体 student 表示学生的基本情况,包括学号、姓名、三门课的成绩和平均成绩。
  2. 声明一个数组 stu,用于存储班级中每个学生的信息。
  3. 使用循环遍历每个学生,依次输入学号、姓名和三门课的成绩。
  4. 计算每个学生的三门课的平均成绩,并累加到班级平均成绩中。
  5. 找到平均成绩最高的学生。
  6. 输出每个学生的学号、姓名、三门课的成绩和平均成绩,以及班级的平均成绩。
  7. 输出平均成绩最高的学生的各项信息。

代码:

#include<windows.h>
#define N 5
struct student
{
	char name[8];
	char num[6];
	float score[3];
	float ave;
}stu[N];
int main()
{
	int i, j, maxi;
	float sum, max, average;
	for (i = 0; i < N; i++)
	{
		printf("input scores of student %d:\n", i + 1);
		printf("NO:");
		scanf("%s", stu[i].num);
		printf("Name:");
        scanf("%s", stu[i].name);
		for (j = 0; j < 3; j++)
		{
			printf("score%d:", j + 1);
			scanf("%f", &stu[i].score[j]);
		}
	}
	average = 0;
	max = 0;
	maxi = 0;
	for (i = 0; i < N; i++)
	{
		
		sum = 0;
		for (j = 0; j < 3; j++)
			sum += stu[i].score[j];
		stu[i].ave = sum / 3.0;
		average += stu[i].ave;
		if (sum > max)
		{
			max = sum;
			maxi = i;
		}
	}
	average = average / N;
	printf("NO.  Name   score1    score2   score3   average\n");
	for (i = 0; i < N; i++)
	{
		printf("%5s%10s", stu[i].num, stu[i].name);
		for (j = 0; j < 3; j++)
		{
			printf("%9.2f", stu[i].score[j]);
			printf("%9.2f\n", stu[i].ave);
		}
	}
	printf("average=%5.2f\n", average);
	printf("The highest score is :student %s,%s\n", stu[maxi].num, stu[maxi].name);
	printf("The score are :%4f,%4f,%4f average:%4f\n", stu[maxi].
	score[0], stu[maxi].score[1], stu[maxi].score[2], stu[maxi].ave);
	return 0;
}
posted on 2024-02-20 08:48  qiyukun  阅读(39)  评论(0)    收藏  举报  来源
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3