C++ 角色扮演5球在线裁判
这是sphere online judge的一个编码问题,我没有得到这个代码的正确输出,我知道为什么,只是想问一下使用goto(x,y)是否有助于纠正这个问题的输出。每个环路后的cusor位置导致不期望的输出。有人能提出一个纠正的方法吗 这是问题所在 问题 使用两个字符:。(点)和*(星号)打印网格状图案。网格将有l行、c列,网格的每个方形元素的高度和宽度将等于s 此外,每个网格元素将有一个对角线。网格第一行中第一个正方形的对角线指向下角和右角-使用\(反斜杠)字符打印;下一条对角线将指向右上角-使用/(斜杠)字符打印它。交替打印连续的对角线(请参考下面的示例)。 输入 给你t-测试用例的数量,每个测试用例有三个正整数:l-行数,c-网格中的列数,s-单个方形元素的大小。 输出 对于每个测试用例,输出所请求的模式(请查看示例)。在连续图案之间使用一个换行符 范例 输入: 3. 3 1 2 4 4 1 2 5 2 输出:C++ 角色扮演5球在线裁判,c++,C++,这是sphere online judge的一个编码问题,我没有得到这个代码的正确输出,我知道为什么,只是想问一下使用goto(x,y)是否有助于纠正这个问题的输出。每个环路后的cusor位置导致不期望的输出。有人能提出一个纠正的方法吗 这是问题所在 问题 使用两个字符:。(点)和*(星号)打印网格状图案。网格将有l行、c列,网格的每个方形元素的高度和宽度将等于s 此外,每个网格元素将有一个对角线。网格第一行中第一个正方形的对角线指向下角和右角-使用\(反斜杠)字符打印;下一条对角线将指向右上角
****
*\.*
*.\*
****
*./*
*/.*
****
*\.*
*.\*
****
*********
*\*/*\*/*
*********
*/*\*/*\*
*********
*\*/*\*/*
*********
*/*\*/*\*
*********
****************
*\.*./*\.*./*\.*
*.\*/.*.\*/.*.\*
****************
*./*\.*./*\.*./*
*/.*.\*/.*.\*/.*
****************
这是我的密码
#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";
}
}`
#包括
使用名称空间std;
int main()
{
inti,j,k,l,c,s,t;
void basic(int,int,int);
cin>>t;
k=0;
而(k>l>>c>>s;
对于(i=1;i使用什么goto(x,y)
?您是否尝试过在调试器中逐行遍历代码以查看它真正的功能?goto(x,y)在标准C++中,没有这样的函数。@ sRISHTi7714,因为你不能应用i==j,i+j==s+1,对于所有的情况,把2D数组看作字符单元。你是说你不能确定哪个字符在哪里?我知道逻辑现在可能不明显,但是它可以做。唯一的区别是你目前正在使用。屏幕显示为您的“网格”。@srishti77714此外,当您看到一个字符串一个字符地构建(当您使用调试器时),然后摆弄新行、光标定位等时,调试要容易得多。下载任何免费的编译器(Visual Studio Express、MingW通过代码块等)然后在那里编译你的程序。然后使用编译器附带的调试器逐步调试你的代码。一旦完成,然后将程序提交给法官。如果你只是在法官的文本区域键入代码并进行编译,那么这只不过是一种希望和祈祷的方式来实现这一点。