我正在学习C的switch
语句。这是我的小程序,它运行并进行计算,但不让我看到操作的结果。黑色窗口显示,以便输入数字和操作符,然后在几分之一秒内显示结果并消失。任何帮助表示赞赏。
#include <stdio.h>
int main(int argc, char *argv[])
{
int num1, num2, ans=0;
char ch, name;
printf("Enter a value: ");
scanf("%d", &num1);
printf("Enter a second value: ");
scanf("%d", &num2);
printf("Input * To multiply\
+ To add\
- To subtract: ");
scanf(" %c", &ch);
switch(ch)
{
case'*':
ans=num1 * num2;
printf("%d times %i equals: %i",num1,num2,ans);
break;
case'+':
ans=num1+num2;
printf("%i plus %i equals: %d",num1,num2,ans);
break;
case'-':
ans=num1-num2;
printf("%d minus %d equals: %d",num1,num2,ans);
break;
default:
printf("Range numbers");
}
getchar();
return ch;
}
答案 0 :(得分:2)
可能是由于输出缓冲。在格式化字符串中最后添加换行符(\ n)。
答案 1 :(得分:1)
作为新手,您应该使用转义换行printf
结束所有\n
格式字符串,即printf("%i plus %i equals %d\n", num1, num2, ans);
(或者您应该在结束后立即致电fflush(stdout);
getch
之前和所有scanf
之前的切换。