求某一位学生的成绩平均分。某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。#include <stdio.h>#define N 8typedef struct{ char num[10]; double s[N]; double ave;} STREC;void fun(STREC *a){ }main(){ STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5}; int i; fun( &s ); printf("The %s's student data:\n", s.num); for(i=0;i<N; i++) printf("%4.1f\n",s.s[i]); printf("\nave=%7.3f\n",s.ave);}
时间: 2024-04-02 14:32:34 浏览: 22
好的,我明白了。请看下面的代码实现:
```
void fun(STREC *a){
double sum = 0;
for(int i = 0; i < N; i++){
sum += a->s[i];
}
a->ave = sum / N;
}
```
在函数中,我们对8门课程的成绩进行累加求和,最后计算平均分并存入记录的ave成员中。
相关问题
c语言。从键盘输入n个学生的学号和每人m门课程的成绩,计算每个学生的总分及平均分。输出内容包括每个学生的学号、总分和平均分。 不用数组
好的,让我来帮你解决这道题目。首先可以通过循环语句,逐个读取每个学生的学号和各门课程的成绩,然后计算出每个学生的总分和平均分。最后输出每个学生的学号、总分和平均分。
下面是一个示例代码:
```
#include <stdio.h>
int main()
{
int n, m, i, j;
printf("请输入学生人数和课程数:");
scanf("%d %d", &n, &m);
for (i = 1; i <= n; i++) {
int score_sum = 0;
for (j = 1; j <= m; j++) {
int score;
printf("请输入第 %d 位学生的第 %d 门课程成绩:", i, j);
scanf("%d", &score);
score_sum += score;
}
printf("学生 %d 的总分为 %d,平均分为 %.2f\n", i, score_sum, (float)score_sum / m);
}
return 0;
}
```
希望能够帮到你,如果你还有其他问题,请继续提问。
C语言从键盘输入3门课程,3位同学的成绩,计算总分和平均分,并实现查询功能(从键盘输入学号,查询学生的信息,指针)。
好的,这是一个关于C语言的问题。下面是代码实现,包括输入成绩、计算总分和平均分以及查询学生信息的功能。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 3 // 课程数量
#define LEN 10 // 学号长度
// 定义学生结构体
struct student {
char id[LEN]; // 学号
float grade[NUM]; // 成绩
float total; // 总分
float average; // 平均分
};
// 输入学生信息
void input(struct student *stu, int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", stu[i].id);
for (j = 0; j < NUM; j++) {
printf("请输入第%d个学生的第%d门课成绩:", i+1, j+1);
scanf("%f", &stu[i].grade[j]);
stu[i].total += stu[i].grade[j]; // 计算总分
}
stu[i].average = stu[i].total / NUM; // 计算平均分
}
}
// 查询学生信息
void search(struct student *stu, int n) {
char sid[LEN];
printf("请输入要查询的学生学号:");
scanf("%s", sid);
int i, j;
for (i = 0; i < n; i++) {
if (strcmp(stu[i].id, sid) == 0) { // 学号匹配成功
printf("学号:%s\n", stu[i].id);
printf("成绩:");
for (j = 0; j < NUM; j++) {
printf("%.1f ", stu[i].grade[j]);
}
printf("\n");
printf("总分:%.1f\n", stu[i].total);
printf("平均分:%.1f\n", stu[i].average);
return;
}
}
printf("未找到该学生信息!\n");
}
int main() {
int n = 3;
struct student stu[n];
input(stu, n); // 输入学生信息
search(stu, n); // 查询学生信息
return 0;
}
```
在这个程序中,我们定义了一个结构体 `struct student` 来保存学生信息,包括学号和成绩。我们使用了一个数组来保存多个学生的信息。在 `input` 函数中,我们首先输入学号,然后再输入每门课的成绩,并计算每个学生的总分和平均分。在 `search` 函数中,我们输入要查询的学生学号,然后遍历数组查找匹配的学生信息,如果找到了,则输出该学生的信息,否则输出提示信息。
希望这个程序能够帮到你!