【发布时间】:2015-05-06 09:24:34
【问题描述】:
这是我正在处理的下面的代码。输出是这样的:
Enter Nums: 20 4
OP: Which option was that?
op = getchar(); 部分被完全忽略。为什么?
我正在使用 gcc 4.6.2 MinGW。
#include <stdio.h>
int add(int num1, int num2) {
return num1 + num2;
}
int subs(int num1, int num2) {
return num1 - num2;
}
int mul(int num1, int num2) {
return num1 * num2;
}
float div(int num1, int num2) {
return (float)num1 / num2;
}
int main(int argc, char* argv[]) {
int num1, num2;
char op;
fprintf(stdout,"Enter Nums: ");
scanf("%d %d",&num1,&num2);
fprintf(stdout, "OP: ");
op = getchar();
switch(op) {
case '+':
printf("%d",add(num1, num2));
break;
case '-':
printf("%d", subs(num1,num2));
break;
case '*':
printf("%d",mul(num1,num2));
break;
case '/':
printf("%f",div(num1, num2));
break;
default:
printf("Which option was that?\n");
}
return 0;
}
【问题讨论】:
-
其他需要注意的事情,
div应该返回float而不是int。并注意除以零。 -
是的,我实际上注意到了这一点,并在我的原始代码中进行了修复并修复了它。谢谢,@cool-guy 指出。改变它。
标签: c io mingw mingw32 getchar