当我编译这段代码时,我得到一个错误" 在int val前面,没有' " ; 我该怎样摆脱这个错误?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char card_name[3];
puts("카드 이름을 입력하세요: ");
int val = 0;
if(card_name[0]=='K') {
val = 10;
}
else if (card_name[0] == 'Q') {
val = 10;
}
else if (card_name[0] == 'J') {
val = 10;
}
else if (card_name[0] == 'A') {
val = 11;
}
else
{
val = atoi(card_name);
}
printf("카드값은 다음과 같습니다 : %i/n", val);
return 0;
}
答案 0 :(得分:2)
在main
之后的{
顶部声明所有变量,即在第一个val
之前声明puts
。这是因为您的编译器使用C89禁止混合声明和代码。从C99开始,它们可以(几乎)在任何地方声明。
答案 1 :(得分:2)
如其他答案中所述,C89不支持声明除块开始之外的变量。如果您使用的是clang或gcc,则可能需要在CFLAGS中添加“-std = gnu99”。如果使用其他编译器或IDE,请查找该语言并将其更改为C99或更高版本。
答案 2 :(得分:1)
似乎编译器要求所有可变的定义都在块的开头。 试着写
char card_name[3];
int val = 0;
puts("카드 이름을 입력하세요: ");
还要考虑到数组card_name未初始化。