出错的原因是将结构体的结构体数组的名称写成class,一些编辑器会报错。
直接了当的解决方法就是将结构体数组的名称换一个。
先上一个示例代码
#include <stdio.h>
struct{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在小组
float score; //成绩
} class[] = {
{"Li ping", 5, 18, 'C', 145.0},
{"Zhang ping", 4, 19, 'A', 130.5},
{"He fang", 1, 18, 'A', 148.5},
{"Cheng ling", 2, 17, 'F', 139.0},
{"Wang ming", 3, 17, 'B', 144.5}
};
int main(){
int i, num_140 = 0;
float sum = 0;
for(i=0; i<5; i++){
sum += stu[i].score;
if(stu[i].score < 140) num_140++;
}
printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/5, num_140);
getchar();
return 0;
}
咋一看,代码描述,书写都没有问题,但运行的时候会报错。
原因就是结构体数组的名称class,在一些编辑器中会将它认为是一个新的类。