Member 14096914 Ответов: 2

В чем ошибка в моем коде


All submissions for this problem are available.Recently the company Life Ltd created a new logo for themselves. You are asked to test the design of the logo.

The logo is a 3 * 3 square grid with 9 cells. Each cell contains some lower case english letter. This logo will be considered good if there exist three cells in the shape of an L that contain the letter 'l' (lower case 'L') in each of them. That is, there should be a cell with 'l', its cell directly beneath it should also have 'l' and the cell to the right of the second cell should also have 'l'.

Your task is to tell whether the logo is good or not.

Input
The first line of the input contains an integer T denoting the number of test cases. The description of the test cases follows.
Each of the next three lines contains a description of the logo, i-th of the line contains three characters which denote the i-th row of the logo

Выход
Для каждого тестового случая выведите да или нет в соответствии с ответом на задачу.

Ограничения
1≤T≤100
Пример Ввода
3
лазский
лла
ААА
Алабама
лла
ААА
lll
lll
lll
Пример Вывода
да
нет
да

Что я уже пробовал:

#включить<stdio.h>
тап_п()
{
логотип char[3][3];
int row,col,t,i;
scanf("%d\n",&t);
для(i=0;i<t;i++)
{

for(row=0;row<3;row++)
{
для(col=0;col<3;col++)
{
scanf("%c\n",&logo[row][col]);

}
}
если(лого[0][0]=='Л'&&усилителя;логотип[1][0]=='Л'&&усилителя;логотип[1][1]=='л')
printf("yes\n");
остальное, если(лого[0][1]=='л'&&усилителя;логотип[1][1]=='л'&&усилителя;логотип[1][2]=='л')
printf("yes\n");
остальное, если(Логоса[1][0]=='Л'&&усилителя;логотип[2][0]=='Л'&&усилителя;логотип[2][1]=='л')
printf("yes\n");
остальное, если(Логоса[1][1]=='л'&&усилителя;логотип[2][1]=='л'&&усилителя;логотип[2][2]=='л')
printf("yes\n");
еще
printf("no\n");
}
}

Patrice T

описать проблемы.

2 Ответов

Рейтинг:
2

CPallini

В вашем коде нет никакой ошибки. Вы можете переписать его следующим образом, если хотите.

#include<stdio.h>
#define N 3

int is_good(char l[N][N]);

int main()
{
  char logo[N][N];
  int row,col,t,i;
  scanf("%d\n",&t);
  for(i=0;i<t;i++)
  {

    for(row=0;row<3;row++)
    {
      for(col=0;col<3;col++)
      {
        scanf("%c\n",&logo[row][col]);

      }
    }
    if ( is_good(logo) )
      printf("yes\n");
    else
      printf("no\n");
  }
}

int is_good(char l[N][N])
{
  int r,c;
  for (r=0; r<N-1; ++r)
    for (c=0; c<N-1; ++c)
      if ( l[r][c]=='l' && l[r+1][c]=='l' && l[r+1][c+1]=='l')
        return 1;
  return 0;
}


Рейтинг:
0

Richard MacCutchan

Во-первых, вы отметили этот вопрос C#, когда он явно C.
Что касается вашей проблемы, то вы правильно идентифицируете L-образную форму в наборах 1 и 3.