c语言编写程序 有n个学生的信息,包含学生学号,姓名和三门课的成绩,要求输出平均成绩最好的学生的信息,要求不用结构体和函数
时间: 2024-08-12 12:07:34 浏览: 69
在C语言中,不使用结构体和函数的情况下编写程序来处理这种情况可能有些复杂,但我们可以利用数组和嵌套循环来实现。假设我们有一个二维数组,其中每个数组元素代表一个学生的信息,包括学号、姓名和三门课的成绩。这里是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_STUDENTS 5 // 假设有5个学生
#define NUM_SUBJECTS 3 // 三门课
int main() {
// 定义一个二维数组,用于存储学生信息
int student_data[NUM_STUDENTS][NUM_SUBJECTS + 2] = {
{1, "学生A", 85, 90, 92},
{2, "学生B", 78, 80, 85},
{3, "学生C", 96, 97, 98},
{4, "学生D", 88, 89, 90},
{5, "学生E", 91, 92, 93}
};
// 初始化变量来存储最高平均分和对应学生的索引
int highest_avg = 0;
int best_student_index = 0;
// 遍历所有学生,计算平均分并更新最高平均分和学生信息
for (int i = 0; i < NUM_STUDENTS; i++) {
int total_score = 0;
for (int j = 1; j <= NUM_SUBJECTS; j++) {
total_score += student_data[i][j];
}
double avg_score = (double)total_score / NUM_SUBJECTS;
if (avg_score > highest_avg) {
highest_avg = avg_score;
best_student_index = i;
}
}
// 输出平均成绩最好的学生信息
printf("学号: %d\n", student_data[best_student_index][0]);
printf("姓名: %s\n", student_data[best_student_index]);
printf("平均成绩: %.2f\n", highest_avg);
return 0;
}
```
阅读全文