【发布时间】:2015-08-08 22:11:28
【问题描述】:
试图解决我对硬件的这个问题,但我遇到了一个小问题。我有一系列 if 语句,但即使满足条件,程序也会跳过每个 if 语句。例如:用户想要执行 5 - 2,而不是转到第二个 if 语句来检查用户何时输入减号,程序只是跳过每一个 if 语句.
问题是:
考虑一个从键盘读取两个实数的 C 程序 后跟一个字符,其中该字符可以是 运算符 +、-、*、/ 或 % 提供加法、减法、 乘法、除法或余数。然后结果 显示在屏幕上。例如,如果用户键入: 2.0 3.0 % 那么您的代码将显示: 2 % 3 = 2 注意:在上面的示例中,输入是实数,但余数只执行 整数运算。因此,这两个实数必须类型转换为 允许按余数计算。在无效运算符的情况下 输入(例如 $)然后将错误消息打印到标准 输出,例如输入无效!
我的代码是:
#include <stdio.h>
int main(void){
double num1, num2, plus, minus, divide, mult, op;
printf("Enter two numbers and an operation you would like to perform on those number: \n");
scanf("%lf %lf %lf", &num1, &num2, &op);
if(op=='+')
{
plus=(num1 + num2);
printf("%lf + %lf = %lf", num1, num2, plus);
}
else if(op=='-')
{
minus=num1-num2;
printf("%lf - %lf = %lf", num1, num2, minus);
}
else if(op=='/')
{
divide=num1/num2;
printf("%lf / %lf = %lf", num1, num2, divide);
}
else if(op=='%')
{
int num1, num2, remain;
remain= (num1%num2);
printf("%d %% %d = %d", num1, num2, remain);
}
else
{
printf("Invalid entry!");
}
return 0;
}
非常感谢您对此的帮助,为这样一个小错误苦苦挣扎了一段时间。
【问题讨论】:
-
你将 op 声明为双精度,它应该是一个字符。