case label does not reduce to an integer constant
本帖最后由 一个账号 于 2019-8-23 10:37 编辑这个程序编译后报出了这样的错误:case label does not reduce to an integer constant
源代码:
#include <stdio.h>
int main()
{
char symbol;
long long int num1, num2;
printf("请输入第一个数:");
scanf("%lld", &num1);
printf("请输入第二个数:");
scanf("%lld", &num2);
printf("请输入运算符号:");
scanf("%c", &symbol);
switch (symbol) // 这四个case都有问题
{
case "+" : printf("%lld", num1 + num2); break;
case "-" : printf("%lld", num1 - num2); break;
case "*" : printf("%lld", num1 * num2); break;
case "/" : printf("%lld", num1 / num2); break;
default : printf("输入错误!"); break;
}
return 0;
} case 后的 +-*/ 换成 1 2 3 4(就是 前面输入进去符号 做标记 为1 2 3 4 )或者 直接用if
还有把前面一个long去掉
#include <stdio.h>
int main()
{
char symbol;
long int num1, num2;
int a;
printf("请输入第一个数:");
scanf("%ld", &num1);
printf("请输入第二个数:");
scanf("%ld", &num2);
getchar();//记住 需要这个
printf("请输入运算符号:");
scanf("%c", &symbol);
if(symbol=='+')
{
a=1;
}
else if(symbol=='-')
{
a=2;
}
else if(symbol=='*')
{
a=3;
}
else if(symbol=='/')
{
a=4;
}
switch (a) // 这四个case都有问题
{
case 1 : printf("%lld", num1 + num2); break;
case 2 : printf("%lld", num1 - num2); break;
case 3 : printf("%lld", num1 * num2); break;
case 4 : printf("%lld", num1 / num2); break;
default : printf("输入错误!"); break;
}
return 0;
} 我那个 看不懂 继续说 yuesezhenmei 发表于 2019-8-22 22:05
case 后的 +-*/ 换成 1 2 3 4(就是 前面输入进去符号 做标记 为1 2 3 4 )或者 直接用if
还有把前面 ...
我修改了一下,可以了
页:
[1]