鱼C论坛

 找回密码
 立即注册
查看: 761|回复: 10

[已解决]c语言图案输出,问如何能够高效的输出如图图案呢?

[复制链接]
发表于 2020-4-26 13:49:04 | 显示全部楼层 |阅读模式
5鱼币

最佳答案
2020-4-26 13:49:05
本帖最后由 人造人 于 2020-4-26 17:38 编辑
#include <stdio.h>

void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
    if(dep == 0) {
        if(line > 1) print_triangle(offset, n, n, line - 1);
        return;
    }
    print_triangle(offset + 1, n, dep - 1, line);
    for(size_t i = 0; i < offset; ++i) printf(" ");
    for(size_t i = 0; i < line; ++i) {
        for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
        for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
    }
    printf("\n");
}

int main(void) {
    size_t n;
    printf("please input N: ");
    scanf("%lu", &n);
    print_triangle(0, n, n, n);
    return 0;
}
please input N: 7
                                                *
                                               ***
                                              *****
                                             *******
                                            *********
                                           ***********
                                          *************
                                         *             *
                                        ***           ***
                                       *****         *****
                                      *******       *******
                                     *********     *********
                                    ***********   ***********
                                   ************* *************
                                  *             *             *
                                 ***           ***           ***
                                *****         *****         *****
                               *******       *******       *******
                              *********     *********     *********
                             ***********   ***********   ***********
                            ************* ************* *************
                           *             *             *             *
                          ***           ***           ***           ***
                         *****         *****         *****         *****
                        *******       *******       *******       *******
                       *********     *********     *********     *********
                      ***********   ***********   ***********   ***********
                     ************* ************* ************* *************
                    *             *             *             *             *
                   ***           ***           ***           ***           ***
                  *****         *****         *****         *****         *****
                 *******       *******       *******       *******       *******
                *********     *********     *********     *********     *********
               ***********   ***********   ***********   ***********   ***********
              ************* ************* ************* ************* *************
             *             *             *             *             *             *
            ***           ***           ***           ***           ***           ***
           *****         *****         *****         *****         *****         *****
          *******       *******       *******       *******       *******       *******
         *********     *********     *********     *********     *********     *********
        ***********   ***********   ***********   ***********   ***********   ***********
       ************* ************* ************* ************* ************* *************
      *             *             *             *             *             *             *
     ***           ***           ***           ***           ***           ***           ***
    *****         *****         *****         *****         *****         *****         *****
   *******       *******       *******       *******       *******       *******       *******
  *********     *********     *********     *********     *********     *********     *********
 ***********   ***********   ***********   ***********   ***********   ***********   ***********
************* ************* ************* ************* ************* ************* *************
5e769b936d12e741c79d3495a35a391.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 13:49:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 人造人 于 2020-4-26 17:38 编辑
#include <stdio.h>

void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
    if(dep == 0) {
        if(line > 1) print_triangle(offset, n, n, line - 1);
        return;
    }
    print_triangle(offset + 1, n, dep - 1, line);
    for(size_t i = 0; i < offset; ++i) printf(" ");
    for(size_t i = 0; i < line; ++i) {
        for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
        for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
    }
    printf("\n");
}

int main(void) {
    size_t n;
    printf("please input N: ");
    scanf("%lu", &n);
    print_triangle(0, n, n, n);
    return 0;
}
please input N: 7
                                                *
                                               ***
                                              *****
                                             *******
                                            *********
                                           ***********
                                          *************
                                         *             *
                                        ***           ***
                                       *****         *****
                                      *******       *******
                                     *********     *********
                                    ***********   ***********
                                   ************* *************
                                  *             *             *
                                 ***           ***           ***
                                *****         *****         *****
                               *******       *******       *******
                              *********     *********     *********
                             ***********   ***********   ***********
                            ************* ************* *************
                           *             *             *             *
                          ***           ***           ***           ***
                         *****         *****         *****         *****
                        *******       *******       *******       *******
                       *********     *********     *********     *********
                      ***********   ***********   ***********   ***********
                     ************* ************* ************* *************
                    *             *             *             *             *
                   ***           ***           ***           ***           ***
                  *****         *****         *****         *****         *****
                 *******       *******       *******       *******       *******
                *********     *********     *********     *********     *********
               ***********   ***********   ***********   ***********   ***********
              ************* ************* ************* ************* *************
             *             *             *             *             *             *
            ***           ***           ***           ***           ***           ***
           *****         *****         *****         *****         *****         *****
          *******       *******       *******       *******       *******       *******
         *********     *********     *********     *********     *********     *********
        ***********   ***********   ***********   ***********   ***********   ***********
       ************* ************* ************* ************* ************* *************
      *             *             *             *             *             *             *
     ***           ***           ***           ***           ***           ***           ***
    *****         *****         *****         *****         *****         *****         *****
   *******       *******       *******       *******       *******       *******       *******
  *********     *********     *********     *********     *********     *********     *********
 ***********   ***********   ***********   ***********   ***********   ***********   ***********
************* ************* ************* ************* ************* ************* *************
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 14:35:51 | 显示全部楼层
可以用*来实现,打印多个字符
xing="*";
print("Hello"+xing*10+"Word!");
&
print(xing*10+"Hello World!"+xing*10);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 15:47:17 | 显示全部楼层
#include <stdio.h>

void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
    if(dep == 0) {
        if(line > 1) print_triangle(offset, n, n, line - 1);
        return;
    }
    print_triangle(offset + 1, n, dep - 1, line);
    for(size_t i = 0; i < offset; ++i) printf(" ");
    for(size_t i = 0; i < line; ++i) {
        for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
        for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
    }
    printf("\n");
}

int main(void) {
    size_t n;
    printf("please input N: ");
    scanf("%lu", &n);
    print_triangle(0, n, n, n);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 15:50:28 | 显示全部楼层
不是,我发代码也审核吗?^_^
#include <stdio.h>

void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
    if(dep == 0) {
        if(line > 1) print_triangle(offset, n, n, line - 1);
        return;
    }
    print_triangle(offset + 1, n, dep - 1, line);
    for(size_t i = 0; i < offset; ++i) printf(" ");
    for(size_t i = 0; i < line; ++i) {
        for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
        for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
    }
    printf("\n");
}

int main(void) {
    size_t n;
    printf("please input N: ");
    scanf("%lu", &n);
    print_triangle(0, n, n, n);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 15:55:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 16:02:20 | 显示全部楼层
@不二如是
需要人工审核,谢谢,^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 17:21:25 | 显示全部楼层
人造人 发表于 2020-4-26 16:02
@不二如是
需要人工审核,谢谢,^_^

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 17:30:58 | 显示全部楼层

我发的代码还没显示出来,^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 17:34:04 | 显示全部楼层
人造人 发表于 2020-4-26 17:30
我发的代码还没显示出来,^_^

把代码加到 2 楼哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 18:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表