结构体数组初始化
#include <stdio.h>struct stu{
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 += class.score;
if(class.score < 140) num_140++;
}
printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/5, num_140);
return 0;
}
救命啊,我定义的的结构体数组明明是按照要求来的,怎么还报错啊{:10_266:} {:10_266:} ,用的Dev-C++编译的。求求大佬救我{:10_285:} class变量名是关键字,换一个
我改成这样了:
#include <stdio.h>
struct stu{
char *name;//姓名
int num;//学号
int age;//年龄
char group;//所在小组
float score;//成绩
}classb= {
{"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 += classb.score;
if(classb.score < 140) num_140++;
}
printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/5, num_140);
return 0;
} 需要先分清楚您在写什么语言,如果是 C 的话没有问题,如果是 C++ 的话非法使用关键字了
对于 Dev-C++ 似乎是通过文件后缀名控制将其视为 C 还是 C++ 的,看下您的文件后缀名是什么 可能你的源文件的后缀名是 .cpp,在 c++ 中 class 是一个关键字,不能用作标识符的名字
解决方法有两种:
1、把 class 改成别的
2、把源文件的后缀名从 .cpp 改成 .c isdkz 发表于 2023-3-22 19:56
可能你的源文件的后缀名是 .cpp,在 c++ 中 class 是一个关键字,不能用作标识符的名字
解决方法有两种 ...
感谢大佬,确实是这样{:10_254:},纯属不知道class在cpp文件中属于关键字 dolly_yos2 发表于 2023-3-22 19:53
需要先分清楚您在写什么语言,如果是 C 的话没有问题,如果是 C++ 的话非法使用关键字了
对于 Dev-C++ 似 ...
收到收到,确实它被视为c++的了{:10_245:},我实在不知道这一点
页:
[1]