输入一个整数,使用循环控制输出结构图形

输入一个整数,使用循环控制输出结构图形,如输入7时,第二张中间的空格怎么添加

img

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

img

空格就是判断不是两头的数据,就输出空格替代中间的数字

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7514023
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:写一个程序,输入一个长整型数,输入一任意一个长整数,请用函数一求出长整数所有之和,用函数二求出长整型数的逆序数。
  • 除此之外, 这篇博客: 理解一级指针,二级指针,指针和数组,指针数组中的 指针的类型决定了指针向前或者向后走一步有多大。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
  • 您还可以看一下 韦语洋(Lccee)老师的一机一码加密、被破解自动销毁随时授权回收升级系列视频课程课程中的 注册机生成注册码小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    可以使用两层循环来输出指定图形,具体步骤如下:

    1. 首先,获取用户输入的整数N,并创建一个N行N列的二维数组。

    2. 使用第一层循环控制行数,范围从0到N-1。

    3. 在第一层循环中,使用第二层循环控制列数,范围从0到N-1。在每一次循环中,判断当前位置是否为第二行的中心位置(即行数为1且列数为N/2-1),如果是,则在对应位置输出一个额外的空格;否则,输出一个普通的字符(比如"*")。

    4. 在第二层循环结束后,输出一个换行符,以开始下一行的输出。

    下面是具体的代码实现:

    #include <stdio.h>
    
    int main() {
        int N;
        printf("请输入一个整数N:");
        scanf("%d", &N);
    
        // 创建N行N列的二维数组
        char square[N][N];
    
        // 使用两层循环输出指定图形
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                if (i == 1 && j == N/2-1) {
                    square[i][j] = ' ';
                }
                else {
                    square[i][j] = '*';
                }
                printf("%c ", square[i][j]);
            }
            printf("\n");
        }
    
        return 0;
    }
    

    这样,当用户输入N=7时,程序会输出一个由7行7列的正方形图形,其中第二行的中心位置有一个额外的空格。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^