C / C ++中的简单计算器程序

时间:2008-11-07 02:54:17

标签: 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, &quotiont);  

  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", &quotiont);  
  else  
      printf("Error");  
}

3 个答案:

答案 0 :(得分:13)

你想用这条线做什么?

scanf("%f %f %f %f", &sum, &difference, &product, &quotiont);  

这样做需要用户输入四个数字并将它们分别加载到四个变量中。在这一行之后,你为这四个变量分配了新的值,所以没有必要在这行代码中加载它们。

此外,以下if声明的重点是什么? (以及所有else if语句)

if(a + b)
    printf("Answer = %f\n", &sum);

如果ab的总和不为零,则只会打印答案。如果'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());
}