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

输入10个学生数据并计算平均成绩及最高分
程序实现从键盘接收10名学生的信息,包括学号、姓名和3门课程的成绩,计算并打印所有学生的平均成绩,同时找出平均成绩最高的学生的所有详细信息。
#include "stdio.h"
#define N 10
struct student

int no;//学号
  char name[8];//姓名
    float score[3];//成绩
    float avg;//平均成绩
} stu[N];
void main()
{
struct student stu[N];
int i,wz;//位置
double max;//最高分
for(i=0;i<N;i++)
{
printf("\n请输入第 %d个学生信息:\n",i+1);
scanf("%d%s%f%f%f",&stu[i].no,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].avg=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
### 程序逻辑与代码实现 以下是一个使用C语言实现的程序,该程序可以输入3学生数据学号姓名和2课程成绩),并计算输这两课程的总平均成绩。 ```c #include <stdio.h> #include <string.h> #define STUDENT_COUNT 3 #define COURSE_COUNT 2 typedef struct { int number; // 学号 char name[20]; // 姓名 float scores[COURSE_COUNT]; // 成绩 } Student; int main() { Student students[STUDENT_COUNT]; // 输入学生数据 for (int i = 0; i < STUDENT_COUNT; i++) { printf("请输入第%d个学生学号:", i + 1); scanf("%d", &students[i].number); printf("请输入第%d个学生姓名:", i + 1); scanf("%s", students[i].name); for (int j = 0; j < COURSE_COUNT; j++) { printf("请输入第%d个学生的第%d课程成绩:", i + 1, j + 1); scanf("%f", &students[i].scores[j]); } } // 计算总平均成绩 float totalSum = 0.0; for (int i = 0; i < STUDENT_COUNT; i++) { for (int j = 0; j < COURSE_COUNT; j++) { totalSum += students[i].scores[j]; } } float averageScore = totalSum / (STUDENT_COUNT * COURSE_COUNT); // 输结果 printf("两课程的总平均成绩为:%.2f\n", averageScore); return 0; } ``` #### 代码说明 1. 定义了一个`Student`结构体用于存储学生学号姓名成绩[^2]。 2. 使用循环依次输入每个学生学号姓名以及两课程成绩[^3]。 3. 遍历所有学生成绩数据,累加所有课程成绩以计算总和[^4]。 4. 根据总成绩学生课程数量计算平均成绩,并将结果保留两位小数后输[^5]。 ### 注意事项 - 在输入姓名时,确保姓名长度不超过定义的数组大小(如20个字符)[^6]。 - 如果需要处理更多学生课程,可以通过修改`STUDENT_COUNT`和`COURSE_COUNT`宏定义来实现[^7]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值