用c++ 有若干个学生,每个学生含有学号,姓名,成绩,程序要求:编写一个inputdata函数用于输入N个学生的数据,编写一个outputdata函数用于输出N个学生的数据,编写一个avgdata函数用于计算且输出N个学生的平均成绩。
时间: 2023-06-11 20:07:32 浏览: 108
C++输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出等.docx
5星 · 资源好评率100%
以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student {
int id;
char name[20];
float score;
} Student;
void inputdata(Student *stu, int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号、姓名、成绩:\n", i + 1);
scanf("%d %s %f", &stu[i].id, stu[i].name, &stu[i].score);
}
}
void outputdata(Student *stu, int n) {
int i;
printf("学号\t姓名\t成绩\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%.2f\n", stu[i].id, stu[i].name, stu[i].score);
}
}
void avgdata(Student *stu, int n) {
int i;
float sum = 0.0, avg;
for (i = 0; i < n; i++) {
sum += stu[i].score;
}
avg = sum / n;
printf("平均成绩为:%.2f\n", avg);
}
int main() {
int n;
printf("请输入学生人数:\n");
scanf("%d", &n);
Student *stu = (Student*)malloc(n * sizeof(Student));
inputdata(stu, n);
outputdata(stu, n);
avgdata(stu, n);
free(stu);
return 0;
}
```
代码实现了三个函数:`inputdata` 用于输入学生数据,`outputdata` 用于输出学生数据,`avgdata` 用于计算平均成绩并输出。在主函数中,首先输入学生人数,然后动态分配内存,调用三个函数完成相应功能,最后释放内存。
阅读全文