#include
struct score {
float score1;
float score2;
float score3;
};
struct stu {
char No[10];
char name[15];
struct score s;
} student[2];
void average (float sum[], float *aver1, float *aver2) {
int i;
float total = 0;
for (i = 0; i < 2; i++) {
sum[i] = student[i].s.score1 + student[i].s.score2 + student[i].s.score3;
printf("%s\t", student[i].name);
printf("%f\t", sum[i]);
printf("%f\t\n", *aver1 = sum[i] / 3);
total += sum[i];
}
printf("%f\t", *aver2 = total / 2);
}
void main () {
// average 函数本来就是声明在main函数之前,就不用在这里声明一遍了,而且你的参数类型不一致
// void average(float [], float *, float *);
float sum[2], aver1, aver2;
int i;
for (i = 0; i < 2; i++) {
printf("student's No:");
scanf("%s", &student[i].No);
printf("student's name:");
scanf("%s", &student[i].name);
printf("student's score1:");
scanf("%f", &student[i].s.score1);
printf("student's score2:");
scanf("%f", &student[i].s.score2);
printf("student's score3:");
scanf("%f", &student[i].s.score3);
}
average(sum, &aver1, &aver2); // 第二三个参数从外面没传值,还不如不要,或者你是要把值再传出来?
}
不如用易语言,呵呵这种麻烦