Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 14:19   #1
Student_termos
Новичок
Джуниор
 
Регистрация: 14.01.2013
Сообщений: 2
По умолчанию Удалить нулевые строки/столбцы в матрице

Удалить нулевые строки/столбцы в матрице заданной с разной длиной строк.
По условию задачи реализовал удаление, но программа в выводе ответа показывает набор символов, вместо введённых значений и удаляет неправильно строки со столбцами. Подскажите, где нужно исправить код?
Код:
#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;
 
int **mas, n, m, temp, i,j, y, t;
int main ()
{

        int  *a;
                cout<<"Vvedite kol-vo strok: ";
                cin>>n;
                                printf("\n"); 
                mas=new int*[n];
                a=new int[n];
                for(i=0; i<n; i++)
                {
                        cout<<"Dlina "<<i+1<<" stroki =";
                    cin>>temp;
                        mas[i]=new int[temp];
                        a[i]=temp;
                }
 
                printf("\n"); 
   
    cout << "Vvedite matricu:\n";
    for ( i=0; i<n; i++) {
        for ( j=0; j<a[i]; j++) {
            cin>>mas[i][j];
                        }}
        for(i=0; i<n; i++)
        {
                t=0;
                for(j=0; j<a[i]; j++)
                        if(mas[i][j]!=0)
                                t=1;
                if(t==0)
                {
                        for(y=i; y<n-1; y++)
                                for(j=0; j<a[i]; j++)
                                        mas[y][j]=mas[y+1][j];
                        n--;
i=0;
                }
        }
        for(i=0; i<n; i++)
        {
                t=0;
                for(j=0; j<a[i]; j++)
                        if(mas[j][i]!=0)
                                t=1;
                if(t==0)
                {
                        for(y=i; y<a[i]-1; y++)
                                for(j=0; j<a[i]; j++)
                                        mas[j][y]=mas[j][y+1];
                        m--;
i=0;
                }
        }
        cout<<endl;
        cout<<"polychennyi massiv"<<endl;
        for(i=0; i<n; i++)
        {
       for(j=0; j<a[i]; j++)
          cout<<mas[i][j]<<"  ";
                cout<<endl;
        }
        cout<<endl;
        getch();
         return 0;
}
Student_termos вне форума Ответить с цитированием
Старый 14.01.2013, 14:20   #2
Student_termos
Новичок
Джуниор
 
Регистрация: 14.01.2013
Сообщений: 2
По умолчанию

Забыл, в динамических массивах всё конечно=)
Student_termos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить из массива A(N,M) строки и столбцы nuklon712 Помощь студентам 3 19.12.2012 14:09
Удалить методом сдвига столбцы в матрице Zil131 Помощь студентам 0 11.11.2011 16:09
Уплотнить массив,удалив из него все нулевые строки и столбцы malishka ya@ Помощь студентам 0 29.05.2010 14:18
Уплотнить массив,удалив из него все нулевые строки и столбцы sonya17 Помощь студентам 0 27.05.2010 19:56
Как обменять заданные строки/столбцы в матрице siriusz Общие вопросы C/C++ 6 18.01.2009 19:13