将第7行:scanf_s("%lf%c%lf", &a, &c, &b); 修改为:scanf_s("%lf%c%lf", &a, &c, 1, &b); 即可。
是不是 %lf 写成了 %1f
注意是字母 L 的小写
你输入数据的时候加空格啊。
網上看到是輸入兩組數字,然後輸入 運算子(Operator)。
而且需要 空格區分。
【以下回答由 GPT 生成】
从你提供的代码和错误信息来看,问题可能出在 scanf_s
函数上。scanf_s
是安全版本的 scanf
函数,它要求你传入输入变量的大小作为额外的参数。但是你的代码中没有传入这个参数,这可能导致程序运行时的错误。
为了解决这个问题,你可以使用 scanf
函数来替代 scanf_s
,并且在代码开头加入头文件 #define _CRT_SECURE_NO_WARNINGS
来禁用安全检查。
以下是修改后的代码:
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main() {
double a, b;
char c;
printf("请输入 a+(-,,/)b: ");
scanf("%lf%c%lf", &a, &c, &b);
switch (c) {
case '+':
printf("%lf\n", a + b);
break;
case '-':
printf("%lf\n", a - b);
break;
case '*':
printf("%lf\n", a * b);
break;
case '/':
printf("%lf\n", a / b);
break;
default:
printf("错误!\n");
break;
}
}
请尝试运行修改后的代码,看是否能够得到正确的结果。如果问题仍然存在,请提供更多的错误信息以便进一步排查问题。
【相关推荐】