![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Kupullko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 24.6.2015 Репутация: нет Всего: нет |
Всем добрый день, если не по теме извините, ребят выручите пожалуйста написал программу, а в ней ошибка, не могу понять как исправить помогите..
Вот условие: в двумерном массиве , элементы которого целые числа сделать следующие: уплотнить массив удалив из него все нулевые строки и столбцы. Вот что я сделал: #include <iostream> using namespace std; int **creat(int &n, int &m) { cout « "n="; cin » n; cout « "m="; cin » m; int **t = new int *[n]; for (int i = 0; i<n; i++) t[i] = new int[m]; for (int i = 0; i<n; i++) for (int j = 0; j<m; j++) {cout « "t[" « i « "][" « j « "]="; cin » t[i][j];} return t;} void print(int **t, int n, int m) { for (int i = 0; i<n; i++, cout « endl) for (int j = 0; j<m; j++) cout « t[i][j] « ";\t";} void deleteA(int **t, int n) { for (int i = 0; i<n; i++) delete[]t[i]; delete[]t;} int main() { int n, m,i1,j1,k; int **t = creat(n, m); print(t, n, m); for (int i = 0; i<n; i++) {k=0; for (int j = 0; j<m; j++) if (t[i][j])==0) k++; if (k==m) {for (int i = i1; i<n-1; i++) for (int j = j1; j < m - 1; j++) t[i][j] = t[i + 1][j + 1]; m--; i--: print(t, n, m);} deleteA(t, n); system("pause"); return 0;} Ошибка: цыкл инт мэйн не провильный в нем ошибки Спасибо вам ребят надеюсь на вашу помощь..!!! |
|||
|
||||
| feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Откуда взялись i1 и j1???
Если бы было так:
И всё же. Вам сначала нужно удалить нулевые строки, потом удалить нулевые столбцы. Вы же пытаетесь сделать это как бы одновременно, что приводит к хаосу в матрице. И когда Вы копируете нижележащую строку на текущую, не нужно отсчитывать от j, а нужно начинать с 0-го элемента (Вы же всю строку копируете, а не её часть), соответственно не нужно делать j1+1 и m-1:
Добавлено через 2 минуты и 17 секунд Когда Вы удалили одну нулевую строку, у Вас уменьшается число строк n, а не столбцов m... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
| Kupullko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 24.6.2015 Репутация: нет Всего: нет |
я исправил, и что то все равно не работает..
int main() { int n, m,i1,j1,k; int **t = creat(n, m); print(t, n, m); for (int i = 0; i<n; i++) {k=0; for (int j = 0; j<m; j++) if (t[i][j]==0) k++; if (k==m-1) for (int i1 = i; i1<n-1; i1++) for (int j1 = j; j1 < m - 1; j1++) t[i1][j1] = t[i1 + 1][j1 + 1]; n--; i--; print(t, n, m);} deleteA(t, n); system("pause"); return 0;} |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
А это? ??? Откуда вдруг -1 появилось? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Kupullko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 24.6.2015 Репутация: нет Всего: нет |
Все ровно не помогает:(
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |