编程题输入3名学生怎么写

时间:2025-01-28 19:57:37 网络游戏

```c

include

include

define N 3

struct stu {

int num; // 学号

char name; // 姓名

int score; // 成绩1和成绩2

};

void input(struct stu *p) {

for (int i = 0; i < N; ++i) {

printf("请输入学号: ");

scanf("%d", &p[i].num);

printf("请输入姓名: ");

scanf("%s", p[i].name);

for (int j = 0; j < 2; ++j) {

printf("请输入score%d: ", j + 1);

scanf("%d", &p[i].score[j]);

}

}

}

float average(struct stu *p) {

float sum = 0;

for (int i = 0; i < N; ++i) {

sum += p[i].score + p[i].score;

}

return sum / (2 * N);

}

void max_student(struct stu *p) {

float max_avg = 0;

int max_index = 0;

for (int i = 1; i < N; ++i) {

float avg = average(&p[i]);

if (avg > max_avg) {

max_avg = avg;

max_index = i;

}

}

printf("最高分的学生信息:\n");

printf("学号: %d\n", p[max_index].num);

printf("姓名: %s\n", p[max_index].name);

printf("成绩1: %d\n", p[max_index].score);

printf("成绩2: %d\n", p[max_index].score);

printf("平均成绩: %.2f\n", max_avg);

}

int main() {

struct stu students[N];

input(students);

float avg;

for (int i = 0; i < N; ++i) {

avg = average(&students[i]);

printf("学生%d的平均成绩: %.2f\n", i + 1, avg);

}

max_student(students);

return 0;

}

```

代码说明:

结构体定义:

定义了一个结构体`struct stu`,包含学号、姓名和两门课程的分数。

输入函数:

`input`函数用于从键盘输入3名学生的数据。

平均成绩计算函数:

`average`函数计算每个学生的平均成绩。

最高分学生查找函数:

`max_student`函数找出平均成绩最高的学生,并输出其信息。

主函数:

`main`函数调用上述函数,完成输入、计算和输出。

使用方法:

1. 编译并运行程序。

2. 按照提示输入3名学生的学号、姓名和两门课程的成绩。

3. 程序将输出每个学生的平均成绩和最高分学生的信息。