|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.12.2018, 15:31 | #1 |
Регистрация: 02.10.2018
Сообщений: 9
|
Язык СИ.Буква Y
Помогите доделать(или немного переделать) код к лабораторной работе.
На стандартный вход программе подается 143 целых числа через пробел: элементы двумерного массива размером 11 рядов по 13 клеток в каждом. Требуется вывести в стандартный поток вывода размер максимальной по размерам буквы "Y", элементы которой по каждому из 3х направлений (влево, вправо, вниз) от центра не убывают. Определения: 1) Буква "Y" с центром с координатами i,j с длиной L: фигура в двумерном массиве, состоящая из трех отрезков равной длины (влево-вверх, вправо-вверх, вниз), пересекающихся в точке i,j, при этом на каждом отрезке буквы "Y" значения в ячейках неубывают при движении от центра (*). 2) Размер буквы "Y": число ячеек(включая центральную) в любом из трех отрезков (ведь все три - равной длины). Если у буквы "Y" нет всех трех отрезков соответствующих свойству* (т.е. она состоит только из одной, центральной, клетки) - её размер равна 1. Пример 1: поле размерами 5 на 5 клеток. "Y" с центром в точке 2,2 с длиной 3: 3 0 0 0 3 0 2 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 Пример 2: поле размерами 5 на 5 клеток. "Y" с центром в точке 2,2 с длиной 2: 1 0 0 0 3 0 2 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 Пример 3: поле размерами 5 на 5 клеток. "Y" с центром в точке 2,1 с длиной 2 (это не единственная "Y" такой длины на данном поле): 1 0 0 0 3 0 2 0 1 0 0 0 3 0 0 0 0 1 0 0 0 0 1 0 0 Пример 4: поле размерами 3 на 3 клеток. "Y" длиной > 1 на данном поле нет: 1 2 3 4 5 6 7 8 9 Примеры входа и выхода: Пример 1: Вход: 3 5 3 3 5 1 3 5 4 5 5 2 5 2 5 3 4 4 5 3 2 2 5 3 3 2 3 2 4 4 3 5 2 4 3 4 4 3 2 3 2 3 4 2 3 2 5 1 3 4 4 3 4 3 4 4 1 2 5 2 5 3 4 1 2 1 2 3 4 3 2 3 3 4 5 3 2 4 2 4 1 5 4 1 2 3 5 5 5 5 5 5 5 5 3 3 4 5 1 3 3 4 2 3 2 3 3 1 2 4 4 2 5 4 3 1 4 1 4 3 5 2 1 4 4 5 2 5 3 4 3 4 1 2 3 2 4 1 3 3 4 3 4 Выход: 3 Пример 2: Вход: 1 3 4 4 3 2 2 2 2 1 4 1 3 1 3 1 2 1 1 1 5 3 2 4 3 1 3 1 1 4 2 3 5 4 1 2 4 5 4 5 4 4 5 5 5 2 3 1 3 3 5 2 5 2 5 5 2 4 5 4 4 2 2 3 5 3 5 3 3 3 5 1 4 4 3 5 3 3 3 3 5 5 3 2 1 5 5 5 5 5 1 5 1 1 5 4 5 1 3 2 3 4 2 3 2 3 1 2 2 2 1 3 1 2 2 2 2 2 2 3 3 3 3 1 1 1 5 5 3 2 3 2 3 1 4 1 3 1 1 1 4 3 3 Выход: 2 Пример 3: Вход: 3 5 3 3 1 5 2 4 1 3 3 1 5 1 5 5 3 4 5 5 4 3 2 5 2 5 2 5 2 5 2 4 1 4 3 3 5 4 4 4 4 1 3 4 2 3 3 1 2 3 5 2 5 2 5 3 2 3 1 2 3 2 4 3 1 3 1 1 4 3 4 3 4 2 4 1 2 3 2 3 3 5 4 1 5 2 2 2 4 3 5 3 5 5 1 4 3 3 3 5 4 2 4 4 4 4 3 2 4 4 3 3 1 2 5 4 5 4 5 3 2 4 3 2 3 1 2 5 2 1 2 1 3 3 4 5 1 5 1 5 1 1 2 Выход: 5 #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> int main() { int bigY[11][13]; int len = 1;//длина игрека int m =1;//шаг int s = 0;//максимальный игрек int k=0;//шаг for (int i = 0; i < 11; i++) //ввод двумерного массива { for (int j =0; j < 13; j++) { scanf_s("%i", & bigY[i][j]); } } for (int j = 1; j < 12; j++) { for (int i = 1; i < 10; ) { //проверка выходим ли мы за пределы поля if ((j - m < 0) || (j + m > 12) || (i - m < 0) || (i + m > 10)) { i++; } else { //сравниваем элементы if ((bigY[i-k][j-k] <= bigY[i - m][j - m]) && (bigY[i-k][j+k] <= bigY[i - m][j +m]) && (bigY[i+k][j] <= bigY[i+m][j])) { len++;//увеличиваем длину игрека m++; k++; if (len > s) { s = len; } } else { len = 1; m = 1; k = 0; i++; } } } } if(s!=0) printf("%i",s); if (s == 0) printf("%i", 1); _getch(); return 0; } |
25.12.2018, 15:34 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
|
25.12.2018, 15:47 | #3 |
Заблокирован
Регистрация: 25.12.2018
Сообщений: 0
|
|
25.12.2018, 16:55 | #4 |
Регистрация: 08.06.2011
Сообщений: 4
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Буква Y на Си | helu | Помощь студентам | 0 | 22.12.2018 20:16 |
Вывод слов у которых в iой позиции одна и та же буква( язык C) | NNAndr | Помощь студентам | 8 | 14.01.2013 09:14 |
Буква С | Mr.Been | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 06.05.2009 19:05 |
Буква - не буква? | nec117 | Общие вопросы C/C++ | 4 | 06.11.2008 17:27 |
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. | vitalik007 | Помощь студентам | 1 | 25.09.2007 20:45 |