角色行为5球体在线判断

时间:2016-02-11 18:40:03

标签: c++

这是来自球体在线判断的编码问题,我没有得到这个代码的正确输出,我有点知道为什么,只是想询问是否使用goto(x,y)将有助于纠正此输出问题。每次循环后cusor的位置导致不希望的输出。任何人都可以建议一种纠正方法吗?

这是问题

问题

使用两个字符:。 (点)和*(星号)打印网格状图案。网格将有l行,c列,并且网格的每个方形元素的高度和宽度将等于s。

此外,每个网格元素都有一个对角线。网格第一行中第一个方块的对角线朝向右下角 - 使用\(反斜杠)字符进行打印;而下一个对角线将指向右上角 - 使用/(斜杠)字符打印它。交替打印连续的对角线(请参阅下面的示例)。 输入

给出t - 测试用例的数量和每个测试用例的三个正整数:l - 行数,c - 网格中的列数和s - 单个正方形的大小元件。 输出

对于每个测试用例输出所请求的模式(请查看示例)。在连续模式之间使用一个换行符。

示例 输入: 3 3 1 2 4 4 1 2 5 2

输出:

****
*\.*
*.\*
****
*./*
*/.*
****
*\.*
*.\*
****

*********
*\*/*\*/*
*********
*/*\*/*\*
*********
*\*/*\*/*
*********
*/*\*/*\*
*********

****************
*\.*./*\.*./*\.*
*.\*/.*.\*/.*.\*
****************
*./*\.*./*\.*./*
*/.*.\*/.*.\*/.*
****************

这是我的代码

 #include<iostream>
   using namespace std;

int main()
{
  int i,j,k,l,c,s,t;
  void basic(int,int,int);
     cin>>t;
      k=0;
     while(k<t)
     {
       cin>>l>>c>>s;
       for(i=1;i<=l;i++)
       {
         for(j=1;j<=c;j++)
         {
          basic(i,j,s); 
          }
          cout<<"\n";
       }

       k++;
     }
}


 void basic(int i,int j,int s)
 {
    int m,n,x,p,q;


    x=s+2;

    if(j==1)
        p=0;
       else
        p=1;

    if(i==1)
        q=0;    
     else   
        q=1;


        for(m=q;m<x;m++)
         {


           for(n=p;n<x;n++)
             {  

                if(m%(x-1)==0||n%(x-1)==0)
                  cout<<"*";
                else
                  {
                    if((i+j)%2==0)
                     {
                       if(m==n)
                         cout<<"\\";
                       else
                          cout<<".";
                     }

                     else
                     {
                        if((m+n)%(x-1)==0)
                          cout<<"/";
                         else
                           cout<<".";

                     }



                   }

             } 

             cout<<"\n";
         }



 }`

0 个答案:

没有答案