打印字符序列

printing character sequences

本文关键字:字符 打印      更新时间:2023-10-16

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

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

输入

给定 t - 测试用例

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

输出

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

Input:
3
3 1 2 
4 4 1 
2 5 2 
Output:
****
*.*
*.*
****
*./*
*/.*
****
*.*
*.*
****
*********
**/**/*
*********
*/**/**
*********
**/**/*
*********
*/**/**
*********
****************
*.*./*.*./*.*
*.*/.*.*/.*.*
****************
*./*.*./*.*./*
*/.*.*/.*.*/.*
****************

我的解决方案:

#include <iostream>
using namespace std;
int main()
{
   int i,j,k,l,c,s,t;
   cin>>t;
    k=0;
   while(k<t)
   {
        cin>>l>>c>>s;
     for(i=0;i<(s-1)*l;i++)
      {
        for(j=0;j<(s-1)*c;j++)
            {
              if(i==j)
                  cout<<'';
                else
                {
                  if(i%(s-1)==0||j%(s-1)==0)
                     cout<<'*';
                   else
                      {
                        if(i+j==(s-1))
                          cout<<'/';
                         else
                           cout<<'.';
                      }
                 }                
            } 
         cout<<"n";
      }
      k++;
   } 

    return 0;
}

问题给出编译错误!!不知道为什么?

如果您注意到,cout<<'';第二个'的颜色不同。那是因为是一个逃避角色。它正在逃离'.每当您想使用反斜杠字符本身时,都需要将其更改为\

希望这有帮助!