2016-02-03 4 views
-2

вопрос Использование двух символов:. (точка) и * (звездочка) печатают сетчатый рисунок. Сетка будет иметь 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; 
} 

проблема дает ошибку компиляции !!! не может понять, почему?

+2

какая ошибка компиляции? – vk239

+3

'cout << '\';' - backspace - это escape-символ. Чтобы распечатать обратное пространство, вам нужно использовать 'cout << '\\';' – Chad

ответ

3

Если вы заметили, cout<<'\'; второй ' не такой же цвет. Это потому, что \ - символ побега. Это ускользает от '. Вам нужно будет изменить его на \\ в любое время, когда вы хотите использовать символ обратной косой черты.

Надеюсь, это поможет!

Смежные вопросы