【发布时间】:2014-11-07 11:29:40
【问题描述】:
我是 C 编程新手 我写一个程序。但是当我在进入之前运行程序时,我的选择程序结束了。 这是屏幕截图。 https://onedrive.live.com/download?resid=E63780628DD96583!3161&authkey=!APl3ReO7T4XIO_s&v=3&ithint=photo,jpg
#include<stdio.h>
#include<conio.h>
main()
{
char ch;
int num1, num2, a, m, s;
float d;
printf("\nEnter The First Number: ");
scanf("%d", &num1);
printf("\nEnter The Second Number: ");
scanf("%d", &num2);
a=num1+num2;
m=num1*num2;
s=num1-num2;
d=(float)(num1/num2);
printf("\nEnter Your Choice: ");
scanf("%c", &ch);
switch(ch)
{
case 'A': printf("\nThe Addition Of The Number Is= %d", a);
break;
case 'M': printf("\nThe Multipication Of The Numbers Is= %d", m);
break;
case 'S': printf("\The Subsraction Of THe Numbers Is= %d", s);
break;
case 'D': printf("\nThe Division Of The Two Numbers Is= %f", d);
break;
default : printf("\nInvalid Entry");
break;
}
getch();
return 0;
}
我在哪里做错了???
【问题讨论】:
-
不调试你的程序将是第一个错误。没有对
scanf()进行研究以了解它确实不在读取没有空格前导码的格式化单个%c时跳过空格,因此在第二个数字之后消耗你的换行符而不是你想要的字符成为第二个错误。 -
为什么是纯文本输入输出的屏幕截图?无论如何,您也只检查大写字母。我敢打赌你没有在大写锁定的情况下打字,所以你输入的是小写字符。
标签: c switch-statement