我正试图让这个程序给我一个输出,当我做加法,减法,乘法或除法问题时它会给我答案。但是,任何人都无法帮助它。
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");
}
答案 0 :(得分:13)
你想用这条线做什么?
scanf("%f %f %f %f", &sum, &difference, &product, "iont);
这样做需要用户输入四个数字并将它们分别加载到四个变量中。在这一行之后,你为这四个变量分配了新的值,所以没有必要在这行代码中加载它们。
此外,以下if
声明的重点是什么? (以及所有else if
语句)
if(a + b)
printf("Answer = %f\n", &sum);
如果a
和b
的总和不为零,则只会打印答案。如果'if'后括号内的表达式求值为零,则它不会执行下面的代码。如果它的计算结果为非零值,它将执行代码。
上述行的另一个问题是您将指向sum
变量的指针传递给printf()函数而不是sum
变量的实际值。 '& sum'返回变量的内存地址,但'sum'返回变量的实际值。所以看起来应该是这样的:
printf("Answer = %f\n", sum);
我注意到您在程序顶部定义了一个choice
变量,但从未使用过它。由于这个和你的else if
语句链,我假设你想让用户选择是否加,减,乘或除。
为此,我将choice
定义为char(字符)而不是int,并让用户键入这四个字符中的一个以分配给choice
变量:“+
”,“-
”,“*
”或“/
”。
要将choice
定义为char,请写下:
char choice;
然后让用户输入如下选项:
scanf("%c", &choice);
这会从用户处获取一个字符并将其分配给choice
。
最后,将您的if
语句更改为以下内容:
if (choice == '+')
printf("Answer = %f\n", sum);
else if (choice == '-')
printf("Answer = %f\n", difference);
else
printf("Error: invalid choice.\n");
您可能还想使用switch
语句。
答案 1 :(得分:1)
你拼错了商。
实际上,不要将你的args的地址传递给printf。您只需要为scanf执行此操作。例如,printf(“Answer =%f \ n”,quotient);
呃,那整个如果......如果...最后的东西只是不稳定。拿出来。
为什么要扫描计算结果?把它拿出去。
答案 2 :(得分:-2)
#include<stdio.h>
#include<conio.h>
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 thee value of a: ");
scanf("%f",&a);
printf("Enter the value of y:");
scanf("%f",&b);
sum=a+b;
if (sum = a + b);
printf("sum is %f",sum);
difference = a - b;
if(difference=a-b)
printf("\n difference is %f",difference);
product = a * b;
if(product=a*b)
printf("\n product is %f",product);
quotient = a / b;
if(quotient=a/b)
printf("\n quotient is %f",quotient);
return(main());
}