5.26 C语言练习([编程入门]结构体之成绩统计2:从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩))

【练习】

题目要求:
	有N个学生,每个学生的数据包括学号、姓名、3门课的成绩。
	从键盘输入N个学生的数据。
	要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)

在这里插入图片描述

#include <stdio.h>
#define N 100		// N < 100

struct Student		//声明结构体类型struct Student 
{
   char id[10];
   char name[10];
   int g1;
   int g2;
   int g3;
   int grade;
};

int main()
{
	
//	函数声明
 
	void input(struct Student *s,int n);
	int average(struct Student *s,int n);

//	定义
	
	int n,m;
	struct Student s[N];
	
//	输入n,调用两个函数 

	scanf("%d",&n);
	input(s,n);
	m = average(s,n);
    printf("%s %s %d %d %d",s[m].id,s[m].name,s[m].g1,s[m].g2,s[m].g3);

	return 0;
}

//	输入函数
 
void input(struct Student *s,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%s%s%d%d%d",&s[i].id,&s[i].name,&s[i].g1,&s[i].g2,&s[i].g3);
		s[i].grade = s[i].g1+s[i].g2+s[i].g3;  //	每个学生总成绩 
	}
}

//	求平均值和最大成绩函数 

int average(struct Student *s,int n)
{
    int k,m,max;
    int s1=s[0].g1,s2=s[0].g2,s3=s[0].g3;  	  //	初始化 
    
	max=s[0].grade;
	
    for(k=1;k<n;k++)			              //	大于第一个同学的成绩序号记录给m 
    {
        if(max<s[k].grade)
        {
            max= s[k].grade;
		    m = k;
        }
        
 //	求所有同学各科总成绩 
 
        s1+= s[k].g1;
        s2+= s[k].g2;
        s3+= s[k].g3;
    }
    
	printf("%d %d %d\n",s1/n,s2/n,s3/n);
	
	return m;
}

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是 Python 代码实现: ```python score1 = float(input("请输入第一门课成绩:")) score2 = float(input("请输入第二门课成绩:")) score3 = float(input("请输入第三门成绩:")) average_score = (score1 + score2 + score3) / 3 print("学生平均成绩为:", average_score) ``` 注:以上代码中,使用了 `float()` 函数将输入的字符串类型转换为浮点型,以便进行后续的数值计算。 ### 回答2: 编写一个计算学生三门平均成绩程序,可以如下实现: 1. 首先,定义一个空的列表变量`scores`来存储学生成绩。 2. 然后,通过使用`input`函数逐一从键盘输入学生三门成绩,并将其转换为浮点数类型后添加到`scores`列表中。 3. 接着,计算`scores`列表中所有成绩和,并将结果存储在一个变量`total`中。 4. 根据`scores`列表中的成绩数量,计算平均成绩平均成绩可以通过将`total`除以`len(scores)`得到。 5. 最后,使用`print`函数将平均成绩输出显示给用户。 下面是一个示例程序: ```python scores = [] # 定义一个空列表来存储学生成绩 # 从键盘输入学生三门成绩并添加到scores列表中 score1 = float(input("请输入第一门课成绩:")) scores.append(score1) score2 = float(input("请输入第二门课成绩:")) scores.append(score2) score3 = float(input("请输入第三门成绩:")) scores.append(score3) # 计算成绩 total = sum(scores) # 计算平均成绩 average = total / len(scores) # 输出平均成绩 print("学生平均成绩为:", average) ``` 用户运行该程序后,程序将会提示用户输入三门成绩,然后计算并显示平均成绩。 ### 回答3: 编写一个计算学生三门平均成绩程序十分简单。首先,我们需要声明三个变量用于存储学生的每门课成绩,我们可以将这三个变量命名为score1、score2和score3。其次,我们需要通过键盘输入获取学生的具体成绩。 我们可以使用input()函数来从键盘获取输入,然后将输入的值转换为浮点数类型,并赋值给对应的变量。下面是示例代码: score1 = float(input("请输入第一门课成绩:")) score2 = float(input("请输入第二门课成绩:")) score3 = float(input("请输入第三门成绩:")) 接下来,我们需要计算这三门程的平均成绩。我们可以使用一个新的变量average来存储平均成绩值,通过将三门成绩相加,然后除以程数量(这里是3)来求得平均值。下面是示例代码: average = (score1 + score2 + score3) / 3 最后,我们可以使用print()函数将平均成绩输出到屏幕上,可以添加一些额外的信息,让输出更加友好。下面是示例代码: print("学生三门平均成绩是:", average) 完成以上代码后,我们就可以运行程序,然后通过键盘输入学生三门成绩,最后程序会计算三门程的平均成绩,并将结果输出到屏幕上。希望以上解答能够帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值