Форум программистов, компьютерный форум CyberForum.ru

удалить строку из двумерного массива - C++

Восстановить пароль Регистрация
 
LilyRose
 Аватар для LilyRose
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 14
21.12.2010, 20:27     удалить строку из двумерного массива #1
Помогите с лабой пожалуйста!!!
нужно удалить строку в двумерном массиве, если в ней встречается хотя бы один отрицательный элемент.

главный cpp:

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int i,j,n,m,v;
double **a,**b;
cout<<"Input n,m ";
cin>>n>>m;
if (n>0)
{
if (m>0)
{

a=new double *[n];
b=new double *[n];
for(i=0;i<n;i++)
{
a[i]=new double[m];
}
for (i=0;i<n;i++)
for (j=0;j<m;j++)
cin>>a[i][j];

cout<<"Matr"<<endl;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
//обращение
ydalenie(a,b,n,m);
// вывод b
for(i=0;i<n;i++)
{cout<<"b["<<i<<"]="<<b[i]<<endl;}
delete []b;

for(i=0;i<n;i++)
delete[]a[i];
delete [] a;

}
}



cin>>i;
return 0;
}

новый cpp:
вот тут вообще бред..

#include "stdafx.h"


void ydalenie(double **a,double **b, int n,int m)
{int i,j;
for (i=0;i<n;i++)
{

if(b[i][j]<0)
{
for (j=0;j<m-1;j++)
{
a[i-1][j]=b[i][j];
}
}
}
}

как надо прописать здесь??????????????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 20:27     удалить строку из двумерного массива
Посмотрите здесь:

Удалить строку из двумерного массива и проверить упорядоченность в С C++
Удалить строки двумерного массива C++
C++ Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элем
C++ Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент
1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными э C++
Удалить все непарные строки двумерного массива C++
Удалить все нечётные строки двумерного массива C++
Как удалить нужную i-строку и j-столбец из двумерного массива? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
21.12.2010, 21:31     удалить строку из двумерного массива #2
проходим по строке, если встречаем отрицательный элемент - переписываем все оставшиеся строки на одну вверх, замещая текущую строку:
Код
1  1  2  3        1  1  2  3
4 -1  4  1   =>   1  8  1  1
1  8  1  1        5  2  3  5
5  2  3  5
я бы сделал, чтобы функция возвращала новое количество строк получившейся матрицы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int deleterow(int **A, int m, int n)  // для матрицы m на n.
{
    for (int i = 0; i < m; ++i) {
        for (int j = 0; j < n; ++j) {
            if (A[i][j] < 0) {
                for (int k = i; k < m - 1; ++k) {
                    for (int z = 0; z < n; ++z) {
                         A[k][z] = A[k+1][z];
                    }
                }
                --m;
                --i;
            }
        }
    }
    return m;
}
Yandex
Объявления
21.12.2010, 21:31     удалить строку из двумерного массива
Ответ Создать тему
Опции темы

Текущее время: 22:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru