Матрица, удаления рядка (С++)

Тема в разделе "Общие вопросы по С и С++", создана пользователем STORM(c), 25 ноя 2007.

Статус темы:
Закрыта.
  1. STORM(c)

    STORM(c) Гость

    вот такая задача:

    Сделать алгоритм и программу для обработки двухмерных массивов.
    1.) Элементы матрицы A сделать с помощью генератора случайных чисел.
    2.) Сделать новую матрицу B , в которой удалить с матрицы А ряд, в котором минимальный элемент среди элементов главной диагонали .


    не все так просто оказалось как хотелось

    вот что получилось сделать по задачке у меня:
    Код (Text):
    #include <iostream>
    #include <conio>
    #include <iomanip>

    using namespace std;

    const n = 4;
    const m = 4;

    int main(int argc, char* argv[])
    {
    clrscr();

    unsigned short arrayA[n][m];
    unsigned short arrayB[n-1][m];

    // генерим матрицу
    for ( int i = 0; i < n; i++ )
    {
    for ( int j = 0; j < m; j++ )
    {
    arrayA[i][j] = rand() % 50; // случайным образом до 50
    }
    }
    //------------------------------------

    // Выводим матрицу А на дисплей
    cout << "Matrix A: \n" << endl;
    for( int i = 0; i<n; i++ )
    {
    for( int j = 0; j < m; j++ )
    cout << setw(4) << arrayA[i][j];
    cout << "\n\n";
    }
    //------------------------------------


    // ищем на главной диагонали минимальный элемент
    unsigned short min;
    int row;

    min = arrayA[0][0]; // first
    for ( int i = 0; i < n; i++ )
    {
    for ( int j = 0; j < m; j++ )
    {
    if ( min > arrayA[i=i+1][j=i+1] )   // ищем по диагонали минимум
    {
    min = arrayA[i][j];             // минимальный елемент по диагонали
    row = i;                            // запоминаем ряд который надо del
    }
    }
    }
    //------------------------------------

    // а тут надо сделать матрицу B без рядка в котором минимальный элемент по диагонали в матрице А , только вот как ? я затрудняюсь :confused:

    cout << "min po diagonali: " << min;
    cout << " row : " << row << endl;

    getch();
    return 0;
    }
    так вот я не могу понять как можно в матрицу B загнать значения с матрицы A но без того рядка (тот где по диагонали мы находим минимальный элемет)...

    думал сначала так получится сделать:
    Код (Text):
    ....
    for ( int i = 0; i < n; i++)
    {
    for ( int j = 0; j < m; j++ )
    {
    if (row != i )
    {
    arrayB[i][j] = arrayA[i][j];
    }

    }
    }
    ....
    но оказалось плохо думал ... :(

    дальше начал думать: записать сначала значения до row (ряд которого надо удалить), и после row , ага .... и что ж тада если минимум по диагонали например окажется последний ряд или первый ряд , то наверное будет не хорошая ошибочка....

    а дальше "думалка" сломалась... :D помогите разобратся пожалуйста ?
     
  2. STORM(c)

    STORM(c) Гость

    поспешыл я :( , извините :D
    уже решил ! ;)
     
  3. Cati

    Cati Гость

    Хорошо тебе ты эту задачку решил. Может и мне поможешь, как создать базу данных с помощью дерева цифрового поиска
     
Загрузка...
Похожие Темы - Матрица удаления рядка
  1. fatpunk
    Ответов:
    0
    Просмотров:
    1.137
  2. нини
    Ответов:
    3
    Просмотров:
    1.744
  3. phobiaxx
    Ответов:
    1
    Просмотров:
    1.277
  4. vladis222
    Ответов:
    1
    Просмотров:
    1.285
  5. LudmilaUt
    Ответов:
    0
    Просмотров:
    1.383
Статус темы:
Закрыта.

Поделиться этой страницей