傻眼貓咪 发表于 2022-3-14 12:33:14

打印一个 'C' ?
我只会打印 "椭圆" 和 "傻眼猫咪"(因为手机荧幕太小,"咪" 字没有打到):#include <stdio.h>

int main(){
        printf("\
      ***\n\
    **   **\n\
   **   **\n\
**       **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**         **\n\
**       **\n\
   **   **\n\
    **   **\n\
      ***\n\n\
        ");
        // 傻眼貓咪
        printf("\n\
*   *       **** *****       *    * *\n\
********    ** *   *      *    *****\n\
* * * * *    ** *   *   * * ** *\n\
* ***    **** *****      * *\n\
** * * * *    ** *   *       *   *****\n\
* *******    ** *   *   ** ** * *\n\
**   *   **** *****       * * * * *\n\
* * *   *    ** * *   *   ** ** *****\n\
******   ** * **      * * * * *\n\
* * **   **** ***   *** * * *\n\
*    **      ** ***         * *****\n\
* ******      *    **   ***   *\n\
        ");
        return 0;
}

Passepartout 发表于 2022-3-14 13:33:52

“*****”
“*”
“*”
“*”
“*****”

jhq999 发表于 2022-3-14 14:33:56

zhengyihao1 发表于 2022-3-14 11:51
讲解一下呗

18227452746 发表于 2022-3-14 16:30:00

先用这个循环打印这个图形#include<stdio.h>
int main()
{
    int i,j;//循环变量
    for(i=0;i<17;i++)//外层循环控制行
    {
      for(j=0;j<7;j++)
      {
            printf("*");//内层循环控制列打印*
      }

      printf("\n");//打印行
    }
}

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

也可以考虑分为三个图形比较简单一点

18227452746 发表于 2022-3-14 17:41:19

因为时间关系,我数学不好,你先看看我以前做的0的图形,希望对你有帮助
/*整个图形0我把他分成了三部分
第一部分为上三角形
第二部分为矩形
第三部分为倒下角,也就是下面的下三角*/
#include<stdio.h>
void ssj();//上三角
void zj();//中间
void xsj();//下三角
int main()
{
   ssj();//上三角
   zj();//中间
   xsj();//下三角
    return 0;
}

void ssj()//上三角
{
   int i,j;
    for(i=0;i<2;i++)//外层循环控制行
    {
      for(j=0;j<=i*(-1)+1;j++)//j<=i*(-1)+1这个是要计算出来考虑的,就是打印左边的空格
       {
         printf(" ");//打印空格
       }
      for(j=0;j<=i+i+2;j++)//这个是打印*和挖空
      {
            if(i==0||i==2||j==0||j==i+i+2)//满足条件为图形的边
            {
               printf("*");
            }
            else{                  //否则打印空格,也就是挖空
                printf(" ");
            }
      }
      printf("\n");//外层循环的行
    }
}
void zj()//中间部分
{
    int k,l;
    for(k=0;k<7;k++)
    {
      for(l=0;l<7;l++)
      {
          if(k==7||l==0||l==6)
          {
               printf("*");
          }
         else{
            printf(" ");
         }
      }
       printf("\n");
    }


}
void xsj()
{
int z,x;
   for(z=0;z<2;z++)
   {
      for(x=0;x<=z;x++)
       {
         printf(" ");
       }
       for(x=0;x<=z*(-2)+4;x++)
       {
         if(z==1||x==0||x==z*(-2)+4)
         {
               printf("*");
         }
         else{
            printf(" ");
         }
       }
       printf("\n");
   }
}

编程追风梦 发表于 2022-3-14 18:51:41

C语言带你学C带你飞,第一个就见过,直接空格完了后面加上/n/这样再到第二行第一行**************然后加上/n/然后第二行,这个/n/就是你换行的
你不用这个会出错

编程追风梦 发表于 2022-3-14 18:53:18

jhq999 发表于 2022-3-14 11:46


你这种方法技术含量很高,但是涉及到数学知识,在比赛中没有时间算数学题,所以我还是用简单粗暴的/n/换行符来弄一个C,虽然这很费时间,但是简单

jhq999 发表于 2022-3-14 21:27:19

编程追风梦 发表于 2022-3-14 18:53
你这种方法技术含量很高,但是涉及到数学知识,在比赛中没有时间算数学题,所以我还是用简单粗暴的/n/换 ...

{:5_109:}

FallenLight 发表于 2022-3-28 00:27:46

很简单啊,用printf打印就行了

zhengyihao1 发表于 2022-3-28 21:15:32

FallenLight 发表于 2022-3-28 00:27
很简单啊,用printf打印就行了

听君一席话,胜听一席话

zhangjinxuan 发表于 2022-8-16 12:19:19

#include <stdio.h>
int main(void)
{
    printf("\n\
   *****\n\
    *\n\
    *\n\
    *\n\
    *\n\
   *****\n");
    return 0;
}
页: 1 [2]
查看完整版本: 用*号输出一个C