![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 25.06.2013
Сообщений: 1
|
![]()
Здравствуйте!
Задача такая: Задана последовательность литерных матриц M1,M2,...,Mk,... размером 30 на 40. Подсчитать число таких Mk, что для некоторой Mi, где I<K выполняется Ф(Mi)>1 mod 30 - 1, где Ф(Mi) - число всех строк матрицы Mi, в которых нечетно произведение кодов любых двух соседних элементов, не являющихся цифрами. Вот код: #include <stdio.h> bool isNumber(char x) { // true, если буква - цифра if(x >= '0' && x <= '9') return true; return false; } int F(char Mi[30][40]) { int S = 0; //Счетчик суммы строк удовл. условию for(int k = 0; k < 30; k++) // идем по строкам { for(int j = 1; j < 40; j++) // идем по столбцу { if(isNumber(Mi[k][j-1]) && isNumber(Mi[k][j]) && (Mi[k][j-1] * Mi[k][j]) % 2 == 0)//если обе не цифры, но произведение кодов четно, значит нам эта строка не нужна break; if(j == 39) // если все верно S++; // эта строка нам подходит } } return S; } int main() { char Mi[30][40]; //Переменная для матрицы int K = 0; // Число (сумма) матр. удовл. условию int I = 1; // какая по номеру в последовательности при считывании int status = 1; while(true) //Цикл чтения матриц и проверка условия { for(int i = 0; i < 50; i++) //читаем матр. for(int j = 0; j < 30; j++) scanf("%c", &Mi[i][j]); if((F(Mi) < (I % 30) - 1)&&(status)) //Проверяем условие K++; //Если удовл. то прибавляем счетчик else status = 0; printf("Еще матрица? (0 - нет)\n"); scanf("%c", &Mi[0][0]); if(Mi[0][0] == '0') break; // если ввели ноль то выходим else I++; // если не ноль, то увеличиваем счетчик считывания матриц } printf("%d", K); //Выводим число матр. удовл. условию return 0; } Как сказал принимающий, верно все, кроме той части где считается количество матриц(в main). Теперь главный вопрос: А что вообще требуется получить в итоге? Непонятна формулировка вот этой части: "Подсчитать число таких Mk, что для некоторой Mi, где I<K выполняется Ф(Mi)>1 mod 30 - 1". Какие матрицы сравнивать с условием? Насколько я понимаю, то те самые которые мы вводим, по очереди, а какие считать? Помогите пожалуйста разобраться с задачей. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача на вычисление следа двух матриц | joker5 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 19.12.2012 19:11 |
Задача с последовательностью чисел | Лиза_ | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 22.11.2012 20:13 |
Обработка литерных строк | grib.oksanochka | Помощь студентам | 0 | 24.05.2012 22:16 |
Задача по Pascal c произвольной последовательностью. Тема: циклы. | Slap | Помощь студентам | 8 | 04.09.2010 18:39 |
Паскаль... Обработка литерных величин... | Сеня | Помощь студентам | 2 | 23.02.2009 22:59 |