【C语言】c语言如何通过for循环输出以下图形

新手上路,请多包涵

题主搜了一些简单的c语言利用for输出图形,比如一些正三角和菱形一类的,现在遇到两个比较特殊的图案,一个是字母A,一个是五角星,如图。(中间那个请无视
请问如何在c语言中使用for循环输出这两个图形呢
等大佬解答

阅读 2.9k
1 个回答

A字母从有前后2个*开始分成2个情况

  1. 除了中间是7个*外,可以对应于i==4
  2. 两个*间间隔空格数是 2i+1
  3. i的范围是[0,7],即i<8
  4. 而前面空格数,以最左边为间隔0个为准,分别间隔[7,0]

    int main(void){
     char S[17]={0};
     int i=0,j=0;
    
     for(i=0;i<8;i++){
         for(j=0;j<8-i;j++){ //处理左边空格
                 S[j]=' ';
         }
         // 开始处理*与中间空格
         S[8-i]='*';
         for(j=0;j<i;j++){
             if(i==4){
                 S[8]='*';
                 S[8-j]='*';
                 S[8+j]='*';
             }else{
                 S[8]=' ';
                 S[8-j]=' ';
                 S[8+j]=' ';
             }
         }
         S[8+i]='*';
         printf(S);
         printf("\n");
     }
     return 0;
    }

其实五角星的也是类似处理分3个阶段的,找到对称轴,找到分阶段的关系即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进