1 c
我试图让这个程序给我一个输出,当我做加法,减法,乘法或除法问题时它会给我答案.但是,任何人都无法帮助它.
int main ()
{
int choice;
float a, b;
float sum;
float difference;
float product;
float quotiont;
printf("This program adds, subtracts, multiplies, and divides.\n");
printf("**************\n");
printf("* Calculator *\n");
printf("**************\n");
printf("Enter an expression: ");
scanf("%f %f", &a, &b);
scanf("%f %f %f %f", &sum, &difference, &product, "iont);
sum = a + b;
difference = a - b;
product = a * b;
quotiont = a / b;
if(a + b)
printf("Answer = %f\n", &sum);
else if(a - b)
printf("Answer = %f\n", &difference);
else if(a * b)
printf("Answer = %f\n", &product);
else if(a / b)
printf("Answer = %f\n", "iont);
else
printf("Error");
}
Run Code Online (Sandbox Code Playgroud)
Jer*_*ten 13
你想用这条线做什么?
scanf("%f %f %f %f", &sum, &difference, &product, "iont);
Run Code Online (Sandbox Code Playgroud)
这样做需要用户输入四个数字并将它们分别加载到四个变量中.在此行之后,您将为这四个变量分配新值,因此在此行代码中加载值时没有任何意义.
此外,以下if声明的重点是什么?(以及所有else if陈述)
if(a + b)
printf("Answer = %f\n", &sum);
Run Code Online (Sandbox Code Playgroud)
如果和的a和b为非零,则仅打印答案.如果'if'后括号内的表达式求值为零,则它不会执行下面的代码.如果它的计算结果为非零值,它将执行代码.
上述行的另一个问题是您将指向sum变量的指针传递给printf()函数而不是sum变量的实际值.'&sum'返回变量的内存地址,但'sum'返回变量的实际值.所以看起来应该是这样的:
printf("Answer = %f\n", sum);
Run Code Online (Sandbox Code Playgroud)
我注意到你choice在程序的顶部定义了一个变量,但从未使用它.由于这个和你的else if语句链,我假设你想让用户选择是否加,减,乘或除.
为此,我将定义choice为char(字符)而不是int,并让用户键入这四个字符中的一个以分配给choice变量:' +',' -',' *'或' /' .
要定义choice为char,请写下:
char choice;
Run Code Online (Sandbox Code Playgroud)
然后让用户输入如下选项:
scanf("%c", &choice);
Run Code Online (Sandbox Code Playgroud)
这将从用户获取单个字符并将其分配给choice.
最后,将您的if语句更改为以下内容:
if (choice == '+')
printf("Answer = %f\n", sum);
else if (choice == '-')
printf("Answer = %f\n", difference);
else
printf("Error: invalid choice.\n");
Run Code Online (Sandbox Code Playgroud)
您可能还想为此使用switch声明.
| 归档时间: |
|
| 查看次数: |
11689 次 |
| 最近记录: |