C语言程序求助
本帖最后由 龍之介 于 2020-3-9 15:42 编辑#include <stdio.h>
int main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=5;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
输出的图案是
*****
*****
*****
*****
为什么不是
*****
*****
*****
*****
第一行是从最左边开始输出5个*,然后回车换行后马上输出了一个空格(代码printf("\n");)
第二行接着这个空格继续输出5个*,然后回车换行后也马上输出一个空格,
第三行接着这个空格继续输出5个*,然后回车换行后也马上输出一个空格,行为和第二行完全一样,
第四行也是如此。所以,除了第一行顶格输出外,从第二行开始都是在一个空格之后再输出。
要输出逐次缩进的图案,需要按如下方式,稍作修改即可
#include <stdio.h>
int main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=5;j++)
{
printf("*");
}
printf("\n");
for (j = 1; j <= i; j++)
{
printf(" ");
}
}
return 0;
} printf("\n");换行后应该从头开始算的吧,所以后面的都是只加了一个空格 因为每次换行之后会自动回到开头,所以空格是一样的,正确代码如下:
#include <stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<=5;j++)
{
printf("*");
}
printf("\n ");
for(k=1;k<i;k++)
{
printf(" ");
}
}
return 0;
} 每一个\n是回到行首输出,不是回到上一行输出的位置,所以从第二行开始一直都是空两格个
想实现下面的输出需要一个循环单独控制空格的个数
我在你程序上改造了一下
#include <stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(k=0;k<=i-1;k++)
{
printf(" ");
}
for(j=1;j<=5;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
页:
[1]