关于if括号内语句的问题
#include <stdio.h>int main()
{
char ch;
float s1, s2;
printf("请输入:\n");
scanf_s("%f %c %f", &s1, &ch, &s2);
if (ch == '-')
{
s1 = s1 - s2;
printf("%f\n", s1);
}
else if (ch == '+')
{
s1 = s1 + s2;
printf("%f\n", s1);
}
else if (ch == '*')
{
s1 = s1 * s2;
printf("%f\n", s1);
}
else if (ch == '/' && s2 != 0)
{
s1 = s1 / s2;
printf("%f\n", s1);
}
else
printf("非法输入");
return 0;
}
这段代码能正常运行,但是运行后不是想要的结果,
VC2013下运行结果:
请输入:
1
+
2
请按任意键继续. . .
本帖最后由 livcui 于 2020-7-24 08:25 编辑
改为:
#include <stdio.h>
int main()
{
char ch;
float s1, s2;
printf("请输入:\n");
scanf("%f%c%f", &s1, &ch, &s2);
switch (ch) {
case '-':
s1 = s1 - s2;
printf("%f\n", s1);
break;
case '+':
s1 = s1 + s2;
printf("%f\n", s1);
break;
case '*':
s1 = s1 * s2;
printf("%f\n", s1);
break;
case '/':
if (s2 != 0){
s1 = s1 / s2;
printf("%f\n", s1);
break;
}
default:
printf("非法输入");
}
return 0;
}scanf_s 的问题,改为scanf就可以了,C我不熟,scanf_s 也不知道错哪里了,
代码帮你改成switch了,不然太...
我运行了你的代码,发现s2无法赋值,显示无法写入。有权限。将函数scanf_s改为scanf就正常了。无论输入1+2还是1 + 2都可以正常运行 405794672 发表于 2020-7-24 08:38
我运行了你的代码,发现s2无法赋值,显示无法写入。有权限。将函数scanf_s改为scanf就正常了。无论输入1+2 ...
我用的VS2013,用scanf会报错显示如下
错误 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. f:\练习\consoleapplication34\consoleapplication34\计算器725.c 8 1 ConsoleApplication34
我变秃了。 发表于 2020-7-25 01:37
我用的VS2013,用scanf会报错显示如下
错误 1 error C4996: 'scanf': This function or variable may...
百度一下,查找一下该警告解决办法。C4996的。。就是把你上面写的那个_CRT_SECURE_NO_WARNINGS,它告诉你要用这个。在项目属性里面,预处理器,给定义这个。或者直接在代码里预处理。编译器就不会报错了,忽略了这个警告
页:
[1]