不懂哈哈···

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:29:50
#indlude <stdio.h>
void mian()
{
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时
为什么会输出 10 30 0 ??
实在是不懂···请高手作详细的解释··
,,麻烦各位大侠指教···
有位仁兄说
%*d是跳过不赋值的意思 10赋给i,20跳过(j保持初值0),然后k赋值30,
但是顺序不对 这样的结果是 10 0 30

全过程是这样的

首先 10赋值给i 然后输入20被忽略(不被赋值的意思,不是j不被赋值) 最后输入30赋值给j
即总共输入两个有效的数,分别赋值给i和j。

输入输出都准确
void main()
{
int i=0,j=0,k=0;
scanf("%d%d%d",&i,&j,&k);
printf("%d %d %d\n",i,j,k);
}

%*d是跳过不赋值的意思 10赋给i,20跳过 不赋值给任何变量,30赋值给j,k未赋值

不懂还问呀