简单,但有点怪的问题。

leijunyuncyuyan 2009-03-26 04:33:11
#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k); printf("%d%d%d\n",i,j,k);
}
若输入10 20 30
这个程序的输出为10300,从来没见过有这么输入数字的。还有输出的结果也有点怪。请高手解释一下!呵呵
...全文
121 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzairwolf 2009-09-25
  • 打赏
  • 举报
回复
mark.
forster 2009-09-25
  • 打赏
  • 举报
回复
sanf最好看下返回值的 这里是2
yizhe0314 2009-09-25
  • 打赏
  • 举报
回复
正解
ruifengzhangyi2 2009-09-25
  • 打赏
  • 举报
回复
最后那个0是k k的值本来是30给了j 然后k什么都没有了 就成了0
leijunyuncyuyan 2009-09-25
  • 打赏
  • 举报
回复
即使是跳过的话那也是20不输出了是吧?但是它输出的是10300啊!如果输出1030还说得过去咯。
后面怎么多了一个0啊???
怎么来的??
不懂??
gao337536127 2009-03-27
  • 打赏
  • 举报
回复
学习了
AJrxin 2009-03-27
  • 打赏
  • 举报
回复
真得注意
lizhaohu 2009-03-26
  • 打赏
  • 举报
回复
是%d,而不是%*d,
sh365 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liliangbao 的回复:]
scanf中的%*d表示跳过对应的输入数据,所以30付给个j
printf 中的%*d表示使用是一个可变的字段宽度,如:printf("%*d", w, num); w就是输出的宽度!
[/Quote]
mark
lazi2008 2009-03-26
  • 打赏
  • 举报
回复
嗯。。。明白了。。
PRINTF AND SCANF 这两个输入输出函数还挺多东西搞的啊。。
liliangbao 2009-03-26
  • 打赏
  • 举报
回复
scanf中的%*d表示跳过对应的输入数据,所以30付给个j
printf 中的%*d表示使用是一个可变的字段宽度,如:printf("%*d", w, num); w就是输出的宽度!
xiaoQ008 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lbh2001 的回复:]
%*d表示跳过对应位置变量的赋值
[/Quote]
Mark
lbh2001 2009-03-26
  • 打赏
  • 举报
回复
%*d表示跳过对应位置变量的赋值

69,371

社区成员

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

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