下面c语言计算器实例中输完数据后输入回车是为什么,为什么变量ch1删除后程序不能运行!

/*一个具有两个数加减乘除功能的计算器*/
#include "stdio.h"
void main()
{
int iFirNum,iSecNum,iResult;
char ch,ch1;
printf("请输入表达式如 5+6= 然后按回车键:");
scanf("%d%c%d%c",&iFirNum,&ch,&iSecNum,&ch1);
switch(ch)
{
case '+':
iResult=iFirNum+iSecNum;
printf("%d+%d=%d\n",iFirNum,iSecNum,iResult);
break;
...........
}

问题出现在楼主,对于标准输入scaf和输出函数printf使用上不太清楚其规则。在使用者两个函数时候,传递给函数的信息被称为参数。例如调用scanf("%d",&a)包含两个参数:“%d”和a.printf和scanf相比其它函数比较特殊,一般函数用逗号来隔开函数调用中的多个参数。程序需要知道参数的数目才能正常工作。这两个函数通过第一参数确定后续参数的个数。方法是第一个参数字符串中的每个说明符对应了后面的一个参数。我们在使用这两个函数时候必须保证格式说明符的数目和后面参数的个数相同。
楼主在编译连接都不会出现问题,如果是一般函数,就会编译的时报错,因为C通过一种函数原型机制检查函数调用中是否正确使用了正确数目以及内型的参数,但是对printf和scanf函数不起作用,因为它的参数数目是变化的,且数目不受限制。
参考C primer plus,一本不错的C语言书籍,希望对楼主有用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-27
因为ch1变量 在后面是要被使用的
输入时 最后一个等号 就是输入到了ch1

printf("请输入表达式如 5+6= 然后按回车键:");
scanf("%d%c%d%c",&iFirNum,&ch,&iSecNum,&ch1);
第2个回答  2012-09-27
scanf("%d%c%d",&iFirNum,&ch,&iSecNum);

中也相应删除追问

删除之后程序不能正常运行!

第3个回答  2012-09-27
回车键 是表示你将数据输入到内存中进行运算
变量ch1 就是 你那个等号啊 等号都没了 你怎么运行啊。。
第4个回答  2012-09-27
我也想知道答案
第5个回答  2012-09-27
程序少了个“}”。
输入数据后应该要打印出:5+6=11(若输入5+6)。
删除“ch”,将提示代码中的ch为“未定义变量”