结构2 结构-计算学生平均成绩。 分数 10 作者 苑丽红 单位 长春理工大学 定义学生结构类型的数组,包括学号、姓名、成绩信息。输入n(n<10),再输入n个同学的学号、姓名、成绩项信息, 计算他们的平均成绩并返回主函数。结果在主函数输出。 函数接口定义: 在这里解释接口参数。例如:其中 N 和 D 都是用户传入的参数。 N 的值不超过int的范围; D 是[0, 9]区间内的个位数。函数须返回 N 中 D 出现的次数。 裁判测试程序样例: #include "stdio.h" struct STU {int num; char name[30]; float score; }; float fun(struct STU s[],int n); main() {struct STU s[10]; int n,i; float ave; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%s%f",&s[i].num,s[i].name,&s[i].score) ; ave=fun(s,n); printf("ave=%.2f\n",ave); } /* 请在这里填写答案 */ 输入样例: 4 1 zhang 70 2 wang 80 3 qian 80 4 li 90 输出样例: ave=80.00
时间: 2024-04-14 19:29:44 浏览: 345
你可以使用以下代码实现这个函数:
```c
#include <stdio.h>
struct STU {
int num;
char name[30];
float score;
};
float fun(struct STU s[], int n) {
float sum = 0.0; // 初始化成绩总和为0
for (int i = 0; i < n; i++) {
sum += s[i].score; // 累加每个学生的成绩
}
return sum / n; // 返回平均成绩
}
int main() {
struct STU s[10];
int n, i;
float ave;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d %s %f", &s[i].num, s[i].name, &s[i].score);
}
ave = fun(s, n);
printf("ave=%.2f\n", ave);
return 0;
}
```
这段代码首先定义了一个学生结构体 `STU`,包含三个属性:学号 `num`、姓名 `name`(使用字符数组存储)和成绩 `score`(使用浮点数类型)。
然后是 `fun` 函数,它接收一个学生结构体数组 `s` 和一个整数 `n`,表示学生的数量。函数使用一个变量 `sum` 来记录成绩的总和,初始值为0。然后使用一个循环遍历学生数组,将每个学生的成绩累加到 `sum` 中。最后返回平均成绩,即 `sum / n`。
为了测试这个函数,提供了一个 `main` 函数。它首先从输入中读取一个整数 `n`,表示学生的数量。然后使用一个循环读取 `n` 个学生的学号、姓名和成绩,并将它们存入学生结构体数组 `s` 中。接下来调用 `fun` 函数来计算平均成绩,并将结果输出。
阅读全文