马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一个账号 于 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;
}
|