C语言。为什么在调用函数中用了scanf.之后主函数的scanf和printf语句就不执行了?怎么办呀

# include"stdio.h"
void mm(int &n)
{
int a;
scanf("%d",&a);
}
int main()
{
int a;
char ch='Q';
mm(a);
printf("请选择:\n");
scanf("%c",&ch);
printf("%c",ch);
}
为什么在调用函数中用了scanf.之后主函数的scanf和printf语句就不执行了?怎么办呀

虽说意义不明,所以,你在操作过程中有按回车键,这个操作会进入输入流,被后面那个scanf("%c",&ch);读取了,ch读取了回车,因此表现为Press any key to continue之前会有一次回车,实际上执行过。追问

嗯。谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-10
执行了的

# include"stdio.h"
void mm(int &n)
{
int a;
scanf("%d",&a);
}
int main()
{
int a;
char ch='Q';
mm(a);
printf("请选择:\n");
scanf("%c",&ch);
printf("%c %d %x\n",ch, ch, ch); //实际上ch就是你输入的回车符
}追问

谢谢了

第2个回答  2013-04-10
你已经给 ch 赋值了啊 : char ch='Q';

就不会有scanf 和printf 执行了

-------物联网校企联盟技术部
第3个回答  2013-04-10
试试这样:
#include"stdio.h"
#include "string.h"
void mm()
{
int a;
scanf("%d",&a);
getchar();
}
int main()
{
int a;
char ch='Q';
mm();
printf("请选择: ");
scanf("%c",&ch);
getchar();
printf("%c\n",ch);
}本回答被提问者采纳