c - 为什么输出是这样的?

标签 c calculator division integer-division

当我尝试除以 6/3 时,输出如下 2/-1431650288。代码有什么问题吗? 我的c程序是这样的:

#include <stdio.h>

int main(){

    char Operator;
    int num1, num2;

    printf("Enter the operator in which you want to perform calculation(+, -, *, /)\n");
    scanf(" %c", &Operator);

    if (Operator == '/'){
        printf("Enter two numbers: ");
    scanf(" %d %d", &num1, &num2);
     if (num2==0){
            printf("\a Denominator must be greater than 0.\n");
        }
        else{
            printf(" %d / %d", num1/num2);
        }
    } 
    else{
    printf("Enter two integer numbers: ");
    scanf(" %d %d", &num1, &num2);

    if(Operator =='+'){
        printf(" %d + %d = %d", num1, num2, num1+num2);
    }
    else if(Operator == '-'){
      printf(" %d - %d = %d", num1, num2, num1-num2);
    }
    else if(Operator == '*'){
      printf(" %d * %d = %d", num1, num2, num1*num2);
    }

    else{
       printf("\t \a Invalid Operator.\n");
    }

    }
}

最佳答案

这一行:

printf(" %d / %d", num1/num2);

第一个“%d”是 num1/num2 的结果,这就足够了。第二个 %d 和“/”字符不应该出现在此处。将其更改为:

printf(" %d ", num1/num2);

此外,出于您的目的,switch case结构更适合代码可读性(我认为也有更好的优化)

关于c - 为什么输出是这样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52149072/

相关文章:

c - 如何连续输入两个字符?

C 中类型之间的转换

c - 当USB端口检测到特定麦克风时启动语音识别程序(以避免不小心使用)

java - 希望添加一个计算器来计算食品应用程序今天的卡路里

java - Java中两个不同数组之间的数字相除

c - 如何根据条件将一个数组中的元素添加到另一个未定义大小的数组中?

python - Python中的'//'运算符没有返回正确的解决方法

c++ - 一个简单的加减乘除程序

programming-languages - 您会选择什么除法运算符?

MySQL ORDER BY x-y/x ASC 排序