一个很奇怪的C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:00:07
以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是
#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d ",i,j,k);
}

结果是 10 30 0

真的让人奇怪,怎么把30赋予j了?实在想不明白,请高手指点。。。

%和d之间的* 表示赋值约束,即忽略这个输入,

输入 10 20 30时,20被忽略,所以30赋予j

这样就对了

#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%d%d",&i,&j,&k);
printf("%d%d%d ",i,j,k);
}