请高手!C试题!

来源:百度知道 编辑:UC知道 时间:2024/09/22 23:21:14
#include<stdio.h>
main()
{
int i=1;
printf("##%*d\n",i,i);
i++;
printf("##%*d\n",i,i);
i++;
printf("##%*d\n",i,i);
}
输出结果为什么是:
##1
## 2
## 3
哪位高手帮我分析下。谢谢!

*是表示输出的宽度需再读入一个变数
例如printf("%*d",5,5) 等于 printf("%5d",5)
printf("%*d",9,3) 等于 printf("%9d",3)

我记得%*d好像是跳过指定的列数,所以输出的只是第二个i的值,所以你应该明白为什么结果是这样了吧

循序执行,肯定是
##1
## 2
## 3

两个i只有一个占位符,当然不能两个都输出了

那你想要什么结果