魔塔50层48剑怎么拿:关于c的小问题,请高手帮忙

来源:百度文库 编辑:高考问答 时间:2024/04/29 11:45:54
#include<stdio.h>
#define N 10
void main()
{
int i,j, a[N][N];

for(i=0;i<N;i++)
{
a[i][0]=1;
a[i][i]=1;
}

for(i=2;i<N;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<N;i++)
{
printf("\r\n%*c",3*N-i*3,' '); //请高手解释一下这句话的意思
for(j=0;j<=i;j++)
printf("%-6d",a[i][j]);
}
printf("\n");
}

回楼主:
printf("\r\n%*c",3*N-i*3,' '); 相当于printf("\n%*c",3*N-i*3,' ');
\n代表换行,而%*c对应的是3*N-i*3,' '。也就是3*N-i*3就代表了*号。假设3*N-i*3的值等于10,则printf("\n%*c",3*N-i*3,' ');相当于printf("\n%10c",' ');也就是说光标向右移动3*N-i*3个空格的位置再输出' '(空格)字符。