使用switch语句在C中创建一个简单的计算器
我是C编程的初学者,我刚刚完成了在代码中使用if-else语句制作计算器的工作。现在我试着用switch语句做同样的事情,但它总是执行默认值。请查看我的代码,并告诉我出了什么问题。 我目前正在用代码块编写代码使用switch语句在C中创建一个简单的计算器,c,scanf,C,Scanf,我是C编程的初学者,我刚刚完成了在代码中使用if-else语句制作计算器的工作。现在我试着用switch语句做同样的事情,但它总是执行默认值。请查看我的代码,并告诉我出了什么问题。 我目前正在用代码块编写代码 如果您有任何帮助,我们将不胜感激。您的问题主要与scanf有关,即先前输入的剩余\n被解释为该输入的输入 此外,操作提示与其相应的输入不匹配 建议解决方案: float num1; printf("Please enter the first number: "); scanf("%f"
如果您有任何帮助,我们将不胜感激。您的问题主要与
scanf
有关,即先前输入的剩余\n
被解释为该输入的输入
此外,操作提示与其相应的输入不匹配
建议解决方案:
float num1;
printf("Please enter the first number: ");
scanf("%f", &num1);
float num2;
printf("Please enter the second number: ");
scanf("%f", &num2);
printf("\nWhat operation do you want to do:\n\tA)Addition\n\tB)Subtraction\n\tC)Multiplication\n\tD)Division\n");
char myChar;
scanf(" %c", &myChar);
您可以添加printf
作为调试目的-这也会有所帮助。第一次输入的示例:
float num1;
printf("Please enter the first number: ");
scanf(" %f", &num1);
printf("num1 = %f\n", num1 );
charmychar;scanf(“%c”和&myChar)代码>移动到浮点num1之前
当您scanf(“%c”和&myChar)
读取第二个数字后,您正在读取左边的换行符。您的switch()
没有相应的案例,因此它运行默认设置。不要使用scanf
进行用户输入;使用fgets
。它无法正确执行是一个绝对无用的错误描述,除非您解释什么是无法正确执行。您发布的代码有什么具体问题?可能重复的“
在%f”
@melpomene my bad“%f”跳过空格之前是多余的。。
float num1;
printf("Please enter the first number: ");
scanf(" %f", &num1);
printf("num1 = %f\n", num1 );