1180: 成绩统计(结构体专题)

本文介绍了一个C语言程序,用于输入多名学生的信息,并计算他们的总分,最终输出总分最高的学生详细信息。程序通过结构体组织数据,使用数组存储学生记录,并通过循环与条件判断找出最高分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:

从键盘输入若干个学生的信息,每个学生信息包括学号、姓名、3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息。

 输入:

首先输入一个整数n(1<=n<=100),表示学生人数,然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及三个整数,表示语文、数学、英语三门课成绩,数据之间用空格隔开。

 输出:

输出总成绩最高的学生的学号、姓名、及三门课成绩,用空格隔开。若有多个最高分,只输出第一个。

 样例输入:

3
541207010188 Zhangling 89 78 95
541207010189 Wangli 85 87 99
541207010190 Fangfang 85 68 76

 样例输出:

541207010189 Wangli 85 87 99

代码如下:

 

#include<stdio.h>
// 定义学生信息结构体
typedef struct  
{
	long long id; // 用长长整形,防止数据溢出
	char name[20];
	int x[3];
}student;
int main()
{
	int n, sum[100] = { 0 };
	scanf("%d", &n);
	student stu[100];  // 利用结构别名定义一个结构数组
	// 输入每个学生信息
	for (int j = 0; j < n; j++) 
	{
		scanf("%lld", &stu[j].id);
		scanf("%s", &stu[j].name);
		for (int i = 0; i <= 2; i++)
		{
			scanf("%d", &stu[j].x[i]);
			sum[j] += stu[j].x[i];
		}
	}
	// 找出总成绩最高的
	int max = sum[0];
	int y=0;
	for (int i = 0; i < n; i++)
		if (sum[i] > max)
		{
			max = sum[i];
			y = i;
		}
	// 输出
	printf("%lld %s ", stu[y].id, stu[y].name);
	for (int i = 0; i <= 2; i++)
		printf("%d ", stu[y].x[i]); 
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值