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

  • Автор темы STORM(c)
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

STORM(c)

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

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


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

вот что получилось сделать по задачке у меня:
Код:
#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 но без того рядка (тот где по диагонали мы находим минимальный элемет)...

думал сначала так получится сделать:
Код:
....
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 помогите разобратся пожалуйста ?
 
C

Cati

#3
Хорошо тебе ты эту задачку решил. Может и мне поможешь, как создать базу данных с помощью дерева цифрового поиска
 
Статус
Закрыто для дальнейших ответов.