gpt4 book ai didi

c++ - 数字金字塔图案打印的困难

转载 作者:行者123 更新时间:2023-12-01 14:42:58 27 4
gpt4 key购买 nike

  1
232
34543

我将模式分为两部分。第一部分打印增量号,第二部分打印减号。
  • 第一个循环用于打印行。
  • 第二个循环用于打印空间。 3
  • 循环用于打印增量编号。
  • 第四循环用于递减
    数字。

  • 代码在第三个循环之前都可以正常工作。但是第四个循环没有提供所需的输出。
    #include<stdio.h>

    int main()
    {
    int i,j,n;
    scanf("%d",&n);
    /*Print row*/
    for(i=1;i<=n;i++)
    {
    /*Printing Spaces*/
    for (j = 1; j <= n-i; j++)
    {
    printf(" ");
    }

    /*Printing increasing number values*/
    for ( int num = i; num <= 2*i-1; num++)
    {
    printf("%d",num);
    }

    /*Printing decreasing numbers value*/
    for ( int num = 2*i-2; num <= i-1; num++)
    {
    printf("%d",num);
    }

    /*New line*/
    printf("\n");
    }
    return 0;
    }

    输出为:
      10
    23
    345

    最佳答案

    欢迎来到SO。

    您的第一个错误是在第4个循环的计数器上。您的循环应显示递减的数字,但您仍要增加计数器(也用于打印)。

    第一个错误,在第四个循环中减少计数器。

    第二个错误是您在第一个循环中遇到的情况。您减少了一个计数器,因此,如果计数器在循环开始时已经在该值之前,那么“当我的计数器处于某个值之下”的条件就永远不会为假。因此,您必须将<=替换为>=

    经过测试后,您会看到i-1总是打印一个数字,以至于您删除-1都不多。

    这是您的代码已更正:

    #include<stdio.h>

    int main()
    {
    int i,j,n;
    scanf("%d",&n);
    /*Print row*/
    for(i=1;i<=n;i++)
    {
    /*Printing Spaces*/
    for (j = 1; j <= n-i; j++)
    {
    printf(" ");
    }

    /*Printing increasing number values*/
    for ( int num = i; num <= 2*i-1; num++)
    {
    printf("%d",num);
    }

    /*Printing decreasing numbers value*/
    for ( int num = 2*i-2; num >= i; num--)
    {
    printf("%d",num);
    }

    /*New line*/
    printf("\n");
    }
    return 0;
    }

    关于c++ - 数字金字塔图案打印的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61496321/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com