饼饼嘻嘻 2023-11-09 23:15 采纳率: 86.1%
浏览 10
已结题

数字金字塔pta的一些问题

img


提问


#include <stdio.h>

void pyramid( int n );

int main()
{    
    int n;

    scanf("%d", &n);
    pyramid(n);
    
    return 0;
}

/* 你的代码将被嵌在这里 */

以下是我敲的代码

void pyramid( int n )
{
    int i;
    for(int j=i;j<=n;j++){
    for(int j=1;j<=n-i;j++){
        printf(" ");
    }
    for(int j=1;j<=i;j++){
        printf("%d",i);
        printf(" ");
        
    }
        pyramid(n);
    }
}

以下提交结果

img


问题出在哪里?以及为什么

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-11 01:29
    关注

    【以下回答由 GPT 生成】

    #include <stdio.h>
    
    int main() {
        int rows, i, j, number = 1;
    
        printf("Enter number of rows: ");
        scanf("%d", &rows);
    
        for (i = 1; i <= rows; i++) {
            for (j = 1; j <= rows - i; j++) {
                printf("  ");
            }
            for (j = 1; j <= i; j++) {
                printf("%d ", number);
                number++;
            }
            printf("\n");
        }
    
        return 0;
    }
    

    这段代码创建了一个数字金字塔,但是输出似乎有些问题。让我们来优化一下:

    1. 将number的初始值设为1,以保证金字塔从1开始输出数字。
    2. 在第一个内循环中,打印空格的次数应该是rows - i,不需要额外的空格。因此,将printf(" ");修改为printf(" ");
    3. 最后一行金字塔的数字输出后应该没有空格,因此需要修改第二个内循环的条件为j < i

    优化后的代码如下:

    #include <stdio.h>
    
    int main() {
        int rows, i, j, number = 1;
    
        printf("Enter number of rows: ");
        scanf("%d", &rows);
    
        for (i = 1; i <= rows; i++) {
            for (j = 1; j <= rows - i; j++) {
                printf(" ");
            }
            for (j = 1; j < i; j++) {
                printf("%d ", number);
                number++;
            }
            printf("%d", number);  // 输出最后一个数字
            number++;
            printf("\n");
        }
    
        return 0;
    }
    

    优化后的代码修复了数字金字塔输出中的问题,并且更加清晰易懂。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月22日
  • 已采纳回答 11月14日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,