#include<stdio.h>#define N 2struct student{ int id; char name[20];
float math; float PE; float chinese; float English; float physical;};float math_average(student st[],int n){ float sum; float average; int i; for(i=0;i<n;i++) { sum+=st[i].math; } average=sum/2.0; printf("数学总分为%f,数学平均分为%f",sum,average); return 0;};void main(){ int i; struct student st[N]; for(i=0;i<N;i++) { printf("学号"); scanf("%d",&st[i].id); printf("名字"); scanf("%s",st[i].name); printf("数学成绩"); scanf("%f",&st[i].math); printf("体育成绩"); scanf("%f",&st[i].PE); printf("语文成绩"); scanf("%f",&st[i].chinese); printf("英语成绩"); scanf("%f",&st[i].English); printf("物理成绩"); scanf("%f",&st[i].physical); } math_average(st,N);}**
```
```**
float sum;这里没有初始化,改成float sum = 0.0;
#include<stdio.h>
#define N 2
struct student{
int id;
char name[20];
float math;
float PE;
float chinese;
float English;
float physical;
};
float math_average(student st[],int n)
{
float sum = 0.0; //这里需要初始化
float average;
int i;
for(i=0;i<n;i++)
{
sum+=st[i].math; //sum 没有初始化,需要在前面初始化
}
average=sum/n;
printf("数学总分为%f,数学平均分为%f",sum,average);
return 0;
};
void main()
{
int i;
struct student st[N];
for(i=0;i<N;i++)
{
printf("学号");
scanf("%d",&st[i].id);
printf("名字");
scanf("%s",st[i].name);
printf("数学成绩");
scanf("%f",&st[i].math);
printf("体育成绩");
scanf("%f",&st[i].PE);
printf("语文成绩");
scanf("%f",&st[i].chinese);
printf("英语成绩");
scanf("%f",&st[i].English);
printf("物理成绩");
scanf("%f",&st[i].physical);
}
math_average(st,N);
}
重新贴完成的程序,这样看不了