仔鹿 发表于 2021-10-4 20:19:36

使用循环结构输出图形

*************
***********
   *********
    *******
      *****
      ***
         *

monkey-D 发表于 2021-10-4 20:51:33

按照一定的if条件循环输出空格和*就出来啦,空格每行加一个,*每行减两个

仔鹿 发表于 2021-10-4 21:01:26

monkey-D 发表于 2021-10-4 20:51
按照一定的if条件循环输出空格和*就出来啦,空格每行加一个,*每行减两个

可以告诉我具体操作吗?有代码的那种

傻眼貓咪 发表于 2021-10-4 21:17:01

for i in range(13, -1, -2): # 倒退循环(13, 12, 11, ....0)
    a = ' '*((13-i) >> 1) # a 表示多少个空格' '(这里的 >> 1 等同于 除2)
    b = '*'*i # b 表示多少个字符'*'
    print(f"{a}{b}{a}") # 输出图形的排法我的代码理解难度可能相对比较高,仅供参考

monkey-D 发表于 2021-10-4 21:18:14

仔鹿 发表于 2021-10-4 21:01
可以告诉我具体操作吗?有代码的那种

#include <stdio.h>
#include <string.h>

int main()
{
    int i,j;
    for(i = 7;i>0;i--)
    {
      for(j = 7;j>i;j--)
            printf(" ");
      for(j = 0;j<2*i-1;j++)
      {
            printf("*");
      }
      printf("\n");
    }
    return 0;
}

傻眼貓咪 发表于 2021-10-4 21:24:56

C 代码:
#include <stdio.h>

int main(){
    for(int i=13; i>-1; i-=2){
      int a = (13-i)>>1;
      for(int j=0; j<a; j++) printf(" ");
      for(int j=0; j<i; j++) printf("*");
      for(int j=0; j<a; j++) printf(" ");
      printf("\n");
    }
    return 0;
}
页: [1]
查看完整版本: 使用循环结构输出图形