鱼C论坛

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

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

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

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

  2. void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
  3.     if(dep == 0) {
  4.         if(line > 1) print_triangle(offset, n, n, line - 1);
  5.         return;
  6.     }
  7.     print_triangle(offset + 1, n, dep - 1, line);
  8.     for(size_t i = 0; i < offset; ++i) printf(" ");
  9.     for(size_t i = 0; i < line; ++i) {
  10.         for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
  11.         for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
  12.     }
  13.     printf("\n");
  14. }

  15. int main(void) {
  16.     size_t n;
  17.     printf("please input N: ");
  18.     scanf("%lu", &n);
  19.     print_triangle(0, n, n, n);
  20.     return 0;
  21. }
复制代码

  1. please input N: 7
  2.                                                 *
  3.                                                ***
  4.                                               *****
  5.                                              *******
  6.                                             *********
  7.                                            ***********
  8.                                           *************
  9.                                          *             *
  10.                                         ***           ***
  11.                                        *****         *****
  12.                                       *******       *******
  13.                                      *********     *********
  14.                                     ***********   ***********
  15.                                    ************* *************
  16.                                   *             *             *
  17.                                  ***           ***           ***
  18.                                 *****         *****         *****
  19.                                *******       *******       *******
  20.                               *********     *********     *********
  21.                              ***********   ***********   ***********
  22.                             ************* ************* *************
  23.                            *             *             *             *
  24.                           ***           ***           ***           ***
  25.                          *****         *****         *****         *****
  26.                         *******       *******       *******       *******
  27.                        *********     *********     *********     *********
  28.                       ***********   ***********   ***********   ***********
  29.                      ************* ************* ************* *************
  30.                     *             *             *             *             *
  31.                    ***           ***           ***           ***           ***
  32.                   *****         *****         *****         *****         *****
  33.                  *******       *******       *******       *******       *******
  34.                 *********     *********     *********     *********     *********
  35.                ***********   ***********   ***********   ***********   ***********
  36.               ************* ************* ************* ************* *************
  37.              *             *             *             *             *             *
  38.             ***           ***           ***           ***           ***           ***
  39.            *****         *****         *****         *****         *****         *****
  40.           *******       *******       *******       *******       *******       *******
  41.          *********     *********     *********     *********     *********     *********
  42.         ***********   ***********   ***********   ***********   ***********   ***********
  43.        ************* ************* ************* ************* ************* *************
  44.       *             *             *             *             *             *             *
  45.      ***           ***           ***           ***           ***           ***           ***
  46.     *****         *****         *****         *****         *****         *****         *****
  47.    *******       *******       *******       *******       *******       *******       *******
  48.   *********     *********     *********     *********     *********     *********     *********
  49. ***********   ***********   ***********   ***********   ***********   ***********   ***********
  50. ************* ************* ************* ************* ************* ************* *************
复制代码
5e769b936d12e741c79d3495a35a391.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

  2. void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
  3.     if(dep == 0) {
  4.         if(line > 1) print_triangle(offset, n, n, line - 1);
  5.         return;
  6.     }
  7.     print_triangle(offset + 1, n, dep - 1, line);
  8.     for(size_t i = 0; i < offset; ++i) printf(" ");
  9.     for(size_t i = 0; i < line; ++i) {
  10.         for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
  11.         for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
  12.     }
  13.     printf("\n");
  14. }

  15. int main(void) {
  16.     size_t n;
  17.     printf("please input N: ");
  18.     scanf("%lu", &n);
  19.     print_triangle(0, n, n, n);
  20.     return 0;
  21. }
复制代码

  1. please input N: 7
  2.                                                 *
  3.                                                ***
  4.                                               *****
  5.                                              *******
  6.                                             *********
  7.                                            ***********
  8.                                           *************
  9.                                          *             *
  10.                                         ***           ***
  11.                                        *****         *****
  12.                                       *******       *******
  13.                                      *********     *********
  14.                                     ***********   ***********
  15.                                    ************* *************
  16.                                   *             *             *
  17.                                  ***           ***           ***
  18.                                 *****         *****         *****
  19.                                *******       *******       *******
  20.                               *********     *********     *********
  21.                              ***********   ***********   ***********
  22.                             ************* ************* *************
  23.                            *             *             *             *
  24.                           ***           ***           ***           ***
  25.                          *****         *****         *****         *****
  26.                         *******       *******       *******       *******
  27.                        *********     *********     *********     *********
  28.                       ***********   ***********   ***********   ***********
  29.                      ************* ************* ************* *************
  30.                     *             *             *             *             *
  31.                    ***           ***           ***           ***           ***
  32.                   *****         *****         *****         *****         *****
  33.                  *******       *******       *******       *******       *******
  34.                 *********     *********     *********     *********     *********
  35.                ***********   ***********   ***********   ***********   ***********
  36.               ************* ************* ************* ************* *************
  37.              *             *             *             *             *             *
  38.             ***           ***           ***           ***           ***           ***
  39.            *****         *****         *****         *****         *****         *****
  40.           *******       *******       *******       *******       *******       *******
  41.          *********     *********     *********     *********     *********     *********
  42.         ***********   ***********   ***********   ***********   ***********   ***********
  43.        ************* ************* ************* ************* ************* *************
  44.       *             *             *             *             *             *             *
  45.      ***           ***           ***           ***           ***           ***           ***
  46.     *****         *****         *****         *****         *****         *****         *****
  47.    *******       *******       *******       *******       *******       *******       *******
  48.   *********     *********     *********     *********     *********     *********     *********
  49. ***********   ***********   ***********   ***********   ***********   ***********   ***********
  50. ************* ************* ************* ************* ************* ************* *************
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 14:35:51 | 显示全部楼层
可以用*来实现,打印多个字符

  1. xing="*";
  2. print("Hello"+xing*10+"Word!");
  3. &
  4. print(xing*10+"Hello World!"+xing*10);
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

  2. void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
  3.     if(dep == 0) {
  4.         if(line > 1) print_triangle(offset, n, n, line - 1);
  5.         return;
  6.     }
  7.     print_triangle(offset + 1, n, dep - 1, line);
  8.     for(size_t i = 0; i < offset; ++i) printf(" ");
  9.     for(size_t i = 0; i < line; ++i) {
  10.         for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
  11.         for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
  12.     }
  13.     printf("\n");
  14. }

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

使用道具 举报

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

  1. #include <stdio.h>

  2. void print_triangle(size_t offset, size_t n, size_t dep, size_t line) {
  3.     if(dep == 0) {
  4.         if(line > 1) print_triangle(offset, n, n, line - 1);
  5.         return;
  6.     }
  7.     print_triangle(offset + 1, n, dep - 1, line);
  8.     for(size_t i = 0; i < offset; ++i) printf(" ");
  9.     for(size_t i = 0; i < line; ++i) {
  10.         for(size_t i = 0; i < dep * 2 - 1; ++i) printf("*");
  11.         for(size_t i = 0; i < (n - dep + 1) * 2 - 1; ++i) printf(" ");
  12.     }
  13.     printf("\n");
  14. }

  15. int main(void) {
  16.     size_t n;
  17.     printf("please input N: ");
  18.     scanf("%lu", &n);
  19.     print_triangle(0, n, n, n);
  20.     return 0;
  21. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> 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, 2024-4-28 18:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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