木目丶人言 发表于 2020-4-26 13:49:04

c语言图案输出,问如何能够高效的输出如图图案呢?


人造人 发表于 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
                                                *
                                             ***
                                              *****
                                             *******
                                          *********
                                           ***********
                                          *************
                                       *             *
                                        ***         ***
                                       *****         *****
                                    *******       *******
                                     *********   *********
                                    ***********   ***********
                                 ************* *************
                                  *             *             *
                                 ***         ***         ***
                              *****         *****         *****
                               *******       *******       *******
                              *********   *********   *********
                           ***********   ***********   ***********
                            ************* ************* *************
                           *             *             *             *
                        ***         ***         ***         ***
                         *****         *****         *****         *****
                        *******       *******       *******       *******
                     *********   *********   *********   *********
                      ***********   ***********   ***********   ***********
                     ************* ************* ************* *************
                  *             *             *             *             *
                   ***         ***         ***         ***         ***
                  *****         *****         *****         *****         *****
               *******       *******       *******       *******       *******
                *********   *********   *********   *********   *********
               ***********   ***********   ***********   ***********   ***********
            ************* ************* ************* ************* *************
             *             *             *             *             *             *
            ***         ***         ***         ***         ***         ***
         *****         *****         *****         *****         *****         *****
          *******       *******       *******       *******       *******       *******
         *********   *********   *********   *********   *********   *********
      ***********   ***********   ***********   ***********   ***********   ***********
       ************* ************* ************* ************* ************* *************
      *             *             *             *             *             *             *
   ***         ***         ***         ***         ***         ***         ***
    *****         *****         *****         *****         *****         *****         *****
   *******       *******       *******       *******       *******       *******       *******
*********   *********   *********   *********   *********   *********   *********
***********   ***********   ***********   ***********   ***********   ***********   ***********
************* ************* ************* ************* ************* ************* *************

小无趣 发表于 2020-4-26 14:35:51

可以用*来实现,打印多个字符

xing="*";
print("Hello"+xing*10+"Word!");
&
print(xing*10+"Hello World!"+xing*10);

人造人 发表于 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;
}

人造人 发表于 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;
}

人造人 发表于 2020-4-26 15:55:32

这里的题目一样
https://wenda.so.com/q/1366329674060639

人造人 发表于 2020-4-26 16:02:20

@不二如是
需要人工审核,谢谢,^_^

不二如是 发表于 2020-4-26 17:21:25

人造人 发表于 2020-4-26 16:02
@不二如是
需要人工审核,谢谢,^_^

好的

人造人 发表于 2020-4-26 17:30:58

不二如是 发表于 2020-4-26 17:21
好的

我发的代码还没显示出来,^_^

不二如是 发表于 2020-4-26 17:34:04

人造人 发表于 2020-4-26 17:30
我发的代码还没显示出来,^_^

把代码加到 2 楼哈
页: [1]
查看完整版本: c语言图案输出,问如何能够高效的输出如图图案呢?