急需高手指点!!!!!!!

xushaohua 2003-09-12 01:16:06
看下列一个简单的程序:
main()
{
int a,b;
printf("input a and b:\n");
scanf("%d%d\n",&a,&b);
printf("a=%d, b=%d\n",a,b);
}
问提就出在运行,第一次运行情况是这样的:
input a and b:
12 34 (Enter)/*这样输入后不能正常运行(按道理这种输入格式是对的),于是我就继续输入如下*/
12,34(Enter)
a=12, b=34
接着我又重新编译连接运行,其第二次运行情况:
input a and b:
12,34(Enter)
a=12, b=199
问题:
1:为什么输入格式:12 34不能运行,而要再输入12,34才能运行??
2:第2次运行的结果为什么b的输入结果会是199??
请高手指点,不胜感谢!!!!!!!!
...全文
17 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ben_Young 2003-09-12
  • 打赏
  • 举报
回复
scanf是按格式输入的,就是说你该按你定的格式输入,只是替换其中的转意字符而已。
如,scanf("%d %d",&a,&d)你输入是 12 34(enter)
scanf("%d,%d",&a,&d) 输入是12,34(enter)
CYS8 2003-09-12
  • 打赏
  • 举报
回复
main()
{
int a,b;
printf("input a and b:\n");
scanf("%d %d",&a,&b);//问题出在这里,把\n去掉就可以了。这与加空格与不加都一样。
printf("a=%d, b=%d\n",a,b);
}

xushaohua 2003-09-12
  • 打赏
  • 举报
回复
谢谢你们!!
你们的意思都是说要在两个“%d”中加一个空格才可以是吗?
我按你们的意思运行的情况如下:
第一次:
12 34//还是不能运行,再输入
12 34
a=12, b=34
第二次:
12 34
34 12//为什么第二次输入同样的格式才运行呢??
a=12, b=34//而接受却是第一次输入的结果呢???

另外还有些人说要这样输入:
12(enter)
34(enter)//可还还不能运行!??继续输入
12 34
a=12, b=34
再次运行:
12(enter)
34(enter)
34 12
a=12, b=34//也只接受第一次输入的结果!!??



ttlb 2003-09-12
  • 打赏
  • 举报
回复
main()
{
int a,b;
printf("input a and b:\n");
scanf("%d %d",&a,&b);
printf("a=%d, b=%d\n",a,b);
}
ttlb 2003-09-12
  • 打赏
  • 举报
回复
scanf("%d %d\n",&a,&b);//加个空格
ttlb 2003-09-12
  • 打赏
  • 举报
回复
main()
{
int a,b;
printf("input a and b:\n");
scanf("%d %d\n",&a,&b);
printf("a=%d, b=%d\n",a,b);
}
tutu604 2003-09-12
  • 打赏
  • 举报
回复
scanf("%d%d\n",&a,&b);

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧