wab


私信TA

用户名:comes

访问量:8944

签 名:

越努力,越幸运!

等  级
排  名 777
经  验 3648
参赛次数 1
文章发表 16
年  龄 18
在职情况 学生
学  校 北京邮电大学
专  业 计算机专业

  自我简介:

来来来,做完这一题,还有下一题.

解题思路:行与列的关系

注意事项:注意重复输出时,我们可以看作是两个图形,比如样例中的3 1与5 4,其中5 4就可以看作是5 行与3 行交替出现的结果,可以利用输出次数count%2==1时,输出5行,count%2==0时输出3行,如此类推即可。

参考代码:#include<stdio.h>
int main()
{
     int n,a,b,i,j,count;//n为数据个数,a是行数,b是遍数,count作为累加次数变量,i,j是计数常用字母
     scanf("%d",&n);
     while(n--)//当n为零时停止
     {
          scanf("%d %d",&a,&b);
          count=1;


      while(count<=b)
      {
       if(count%2==1)//次数累加为奇数时,相当于样例中的5 4的第1,3遍输出       

        {
                for(i=1;i<=a;i++)
                {
                     for(j=1;j<=a;j++)
                     {
                          if(i==j||j==a-i+1||j==-(a-i+1))
                          printf("X");
                          else printf(" ");
                     }
                     printf("\n");
                }
           }
        else if(count%2==0)//次数累加为偶数时,相当于样例中的5 4的第2遍输出
               {
                    for(i=2;i<=a-1;i++)
                    {
                         for(j=1;j<=a;j++)
                         {
                          if(i==j||j==a-i+1||j==-(a-i+1))
                          printf("X");
                          else printf(" ");
                         }
                     printf("\n");
                    }
              }
           count++;//输出次数累加
      }
      if(b%2==0)//若输出的次数为偶数,补充最后一行的输出
          for(i=1;i<=a;i++)
          {
               if(i==1||i==a)
               printf("X");
               else
               printf(" ");
          }
          printf("\n");
     }
 return 0;
}

//留下你的大拇指,谢谢哦

 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区