注册 登录
编程论坛 C++教室

C语言的一个问题,求大家帮忙呀!!!!!!

ilovekobemus 发布于 2011-10-20 19:58, 758 次点击
程序:
#include <stdio.h>
void main(void)
{
    int n,i,j;
    printf("请输入打印的行数");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<n-i;j++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("*");
        printf("\n");
    }

}



输出的结果为什么最后一行和倒数第二行开头位置对齐了????


结果如下::
请输入打印的行数7
     *
    ***
   *****                                
  *******
 *********
**********
************                              // 为什么后两行对齐了?????
Press any key to continue
8 回复
#2
nomify2011-10-20 20:11
for(j=1;j<n-i;j++)  //j<=n-i
#3
ilovekobemus2011-10-20 20:19
回复 2楼 nomify
我用的就是这种for的循环,前面一直正确就是每次最后两行对齐了!!!
#4
nomify2011-10-20 20:43
前面的空格少了。
#5
ilovekobemus2011-10-21 00:23
回复 4楼 nomify
我不是一行一行打印的,好好看看程序好吗?!!我是按照规律打印的,仔细看一下谢谢了!!
#6
ilovekobemus2011-10-21 00:24
回复 4楼 nomify
和空格没有关系,所有的空格都对着呢
#7
nomify2011-10-21 10:07
晕。还是直接给代码。
程序代码:
#include <stdio.h>
void main(void)
{
    int n,i,j;
    printf("请输入打印的行数");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n-i;j++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("*");
        printf("\n");
    }
}

 
#8
Jue2011-10-21 13:49
楼上正解!编程需要要仔细啊
#9
boy_royalty2011-10-21 21:48
#include <stdio.h>
void main(void)
{
    int n,i,j;
    printf("请输入打印的行数");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=0;j<n-i;j++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("*");
        printf("\n");
    }

}

1