当我尝试除以 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/