2 条题解

  • 0
    @ 2023-10-1 23:55:42

    #include<stdio.h> int main() { //第一层 int n; scanf("%d",&n); for(int i=0;i<n;i++) { printf("#"); } printf(" "); for(int i=0;i<n;i++) { if(i0||in-1) { printf("#"); } else { printf(" "); } } printf(" "); for(int i=0;i<n;i++) { printf("#"); } printf("\n");

    //中间,这个地方花费了我很多时间
    感谢 佬”饭圈女孩“ 现在差不多理解了
       int b=n-1,c=(n+4),d=2*(n+1)-1,f=(n+2)*2+n/2+1;//这些变量是要来配合下面的循环标记的特位置
       for(int kk=2;kk<=n-1;kk++,b--//对z的中间部分向前推进)//表示行数
           {
           	  for(int j=1;j<3*n+4;j++)//表示列
           	     {
           	     	if(j==b||j==c||j==d||j==f//因为T的特殊位置总是那一列因此f的值不用变,靠kk换行就好)//判断是否位特殊位置
           	     	  {
           	     	  	printf("#");
    			      }
    			    else
    				 {
    				    printf(" ");	
    				 }
    			 }
    			 printf("\n");//这里容易写进第二个for循环里我现在理解了!  
    			 if(c!=d)//对y中间部分输出的要求
    			   {
    			   	c++;
    			   	d--;
    			   }
    	   }
    //最后一层   
    for(int i=0;i<n;i++)
        {
          printf("#");
    	} 
    	printf("  ");  
    for(int i=0;i<n;i++)
       {
       	  if(i==(n+1)/2-1)
       	    {
       	      printf("#");	
    		}
    		else
    		{
    			printf(" ");
    		}
       }
       printf("  ");
       for(int i=0;i<n;i++)
       {
       	  if(i==(n+1)/2-1)
       	    {
       	      printf("#");	
    		}
    		else
    		{
    			printf(" ");
    		}
       }
     
    return 0;
    

    //ok了 再次感谢我的佬!!!

    }

    • -1
      @ 2023-10-1 19:27:37

      #include <stdio.h> //二维数组开主函数外面,默认全为0,下面将中间输出#部分进行标记 int m[1000][1000]; int main() { int n,i,j,a,b; scanf ("%d",&n); //Z的上下部分 for (i=1;i<=n;i++) { m[i][1]=1,m[i][n]=1; } a=n-1; //Z的中间部分 for (i=2;i<=n;i++) { for (j=1;j<=n;j++) { if (j==a) m[j][i]=1; } a--; } a=n+2,b=n+n+1; //Y的上半部分 for (j=1;j<=n/2;j++) { m[a][j]=1,m[b][j]=1; a++,b--; } //Y的下半部分 for (i=n/2+1;i<=n;i++) { m[n+2+n/2][i]=1; } //T的横杠 for (i=n2+3;i<=3n+2;i++) { m[i][1]=1; } //T的竖杠 for (i=2;i<=n;i++) { m[2n+3+n/2][i]=1; } //进行输出 for (i=1;i<=n;i++) { for (j=1;j<=3n+2;j++) { if (m[j][i]==1) printf ("#"); else printf (" "); } printf ("\n"); } return 0; }

      • 1

      信息

      ID
      368
      时间
      1000ms
      内存
      256MiB
      难度
      6
      标签
      (无)
      递交数
      75
      已通过
      22
      上传者