Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] С++ задача на матрицы


Автор: КириллПинегин 4.12.2008, 11:11
Ребята помогите пожалуйста!!!иначе зачет не получу и до экзаменов не допустят!!!
Задание такое:
В матрице удалить столбцы с положительными третьими элементами, а затем добавить столбец из элемента заданного массива
Заранее большое спасибо!!!

Автор: JackYF 6.12.2008, 15:25
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Avaj 6.12.2008, 18:24
Цитата

добавить столбец из элемента заданного массива

 - здесь по-подробней пожалуйста. Может имелось в виду "столбец из элементов заданного массива"?
И что значит удалить? обнулить? или нужно сделать новую матрицу, полученную из старой путём указанных преобразований?

Автор: Dmi3ev 6.12.2008, 18:59
да он тему дублирует, я уже давно ему написал примерное решение вот тут:
http://forum.vingrad.ru/forum/topic-238794/kw-%D1%81++-%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0.html

Автор: Avaj 6.12.2008, 19:56
я уже тут ему налепил...
Код

#include <iostream>
#include <iomanip>
#include <conio.h>

using namespace std;

int main(){
    int i, j, n, m, **a, **a1, *b, k = 0, *c, m1 = 0, j1 = 0;
    cout<<"n(strings, >2 ) = ";
    cin>>n;
    cout<<endl<<"m(columns, >0 ) = ";
    cin>>m;
    if(n<3 || m<1 || n>10 || m>10) cout<<"!!!";
    else{
        a = new int *[n];
        for(i=0;i<n;i++) a[i] = new int[m];
        cout<<endl<<endl<<"Elements of matrix:"<<endl;
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                cout<<endl<<"a["<<i+1<<"]["<<j+1<<"] = ";
                cin>>a[i][j];
            }
        }

        b = new int[n];
        cout<<endl<<endl<<"Elements of adding column:"<<endl;
        for(i=0;i<n;i++){
            cout<<endl<<"b["<<i+1<<"] = ";
            cin>>b[i];
        }

        c = new int[m];
        for(i=0;i<m;i++){
            if(a[2][i]>0){
                c[i] = 0;
                k++;
            }
            else c[i] = 1;
        }
        a1 = new int *[n];
        m1 = m-k+1;
        for(i=0;i<n;i++) a1[i] = new int[m1];
        for(i=0;i<n;i++){
            for(j=0;j<m1-1;j++){
                j1 = j;
                while(c[j1] == 0) j1++;
                a1[i][j] = a[i][j1];
            }
        }
        for(i=0;i<n;i++) a1[i][m1-1] = b[i];
        cout<<endl<<"Result matrix:"<<endl;
        for(i=0;i<n;i++){
            for(j=0;j<m1;j++){
                cout<<setw(4)<<a1[i][j];
            }
            cout<<endl;
        }
        delete [] a;
        delete [] a1;
        delete [] b;
        delete [] c;
    }
    getch();
    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)