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 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.