Lyma Опубликовано 15 декабря, 2012 Жалоба Поделиться Опубликовано 15 декабря, 2012 int otr=0; for(j=0;j<m;j++) { for(i=0;i<n;i++) { if (A[i][j]<0) otr=otr+1; } if (otr=0) { for (i=0;i<n;i++) { A[i][j]=A[i+1][j]; } m--; otr=0; } } cout << "Массив:" << endl; for (int i = 0; i < n; ++i) { for(int j = 0; j < m; ++j) cout << A[i][j] << " "; cout <<endl; } Вообще ничё не удаляет( Где ошибка? =( Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 15 декабря, 2012 Жалоба Поделиться Опубликовано 15 декабря, 2012 Ошибка, точнее, ошибки, в алгоритме удаления столбцов. #include<iostream>#include<iomanip>using namespace std;int main(){const int n=3,m=4;int A[n][m]={{-1,-2,3,-4},{5,6,7,8},{9,10,11,12}},k=m; bool u; cout<<"Source array:"<<endl;for(int i=0;i<n;++i){for(int j=0;j<m;++j)cout<<setw(5)<<A[i][j]; cout<<endl;}for(int j=0;j<k;j++){ u=true; for(int i=0;i<n;i++)if(A[i][j]<0)u=false; if(u){for(int i=0;i<n;i++)for(int h=j+1;h<k;++h)A[i][h-1]=A[i][h]; j--; k--;}}cout<<"Output array:"<<endl;for(int i=0;i<n;++i){for(int j=0;j<k;++j)cout<<setw(5)<<A[i][j]; cout<<endl;}cin.get();} Это на Dev-C++, в Visual C++ надо добавить, скорее всего, заголовочный файл "stdafx.h" Ссылка на комментарий Поделиться на другие сайты Поделиться
Lyma Опубликовано 15 декабря, 2012 Автор Жалоба Поделиться Опубликовано 15 декабря, 2012 Ошибка, точнее, ошибки, в алгоритме удаления столбцов. #include<iostream>#include<iomanip>using namespace std;int main(){const int n=3,m=4;int A[n][m]={{-1,-2,3,-4},{5,6,7,8},{9,10,11,12}},k=m; bool u;cout<<"Source array:"<<endl;for(int i=0;i<n;++i){for(int j=0;j<m;++j)cout<<setw(5)<<A[i][j]; cout<<endl;}for(int j=0;j<k;j++){ u=true; for(int i=0;i<n;i++)if(A[i][j]<0)u=false; if(u){for(int i=0;i<n;i++)for(int h=j+1;h<k;++h)A[i][h-1]=A[i][h]; j--; k--;}}cout<<"Output array:"<<endl;for(int i=0;i<n;++i){for(int j=0;j<k;++j)cout<<setw(5)<<A[i][j]; cout<<endl;}cin.get();} Это на Dev-C++, в Visual C++ надо добавить, скорее всего, заголовочный файл "stdafx.h" А что такое h и k?? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 15 декабря, 2012 Жалоба Поделиться Опубликовано 15 декабря, 2012 (изменено) k - это количество столбцов в матрице-результате. А h просто еще одна переменная цикла. i и j у нас уже заняты - по i перебираются номера строк, в j сидит номер столбца, который мы сейчас проверили. Если столбец j должен быть удален, оставшиеся столбцы от j+1 до k должны быть смещены налево. h и служит для перебора номеров столбцов справа от удаляемого, чтобы поочередно перенести их на одну позицию влево. P.S. Не надо в ответе цитировать целиком предыдущий пост. О чем речь, и так понятно :) Изменено 15 декабря, 2012 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти