Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2018, 15:31   #1
helu
 
Регистрация: 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;
}
helu вне форума Ответить с цитированием
Старый 25.12.2018, 15:34   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

helu, обращайтесь e-mail: informatik101@mail.ru
Telegram: @alexcoder1
vk.com/alexcoder1
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 25.12.2018, 15:47   #3
KataDmitrovna
Заблокирован
 
Регистрация: 25.12.2018
Сообщений: 0
По умолчанию

здраствуйте
готова выполнить
Katadmitrivna@email.ua
KataDmitrovna вне форума Ответить с цитированием
Старый 25.12.2018, 16:55   #4
Thread
 
Аватар для Thread
 
Регистрация: 08.06.2011
Сообщений: 4
По умолчанию

Обращайтесь.

Контакты
cyber4401@gmail.com
http://vk.com/cyber4401
Thread вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Буква 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