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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 23:15   #1
выаавав
 
Регистрация: 28.09.2011
Сообщений: 5
По умолчанию Матрица

Вводится квадратная матрица порядка n. Найти в каждой строке max и min, поменять их местами.

Вообщем я перенес код решения с паскаля на C++ но не понимаю как тут сделать ввод матрицы с клавиатуры и вывод матрицы по этому условию, делал на турбо C++

for(i=0;i<n;i++)
{
if(i>0){tmp=A[i-1][imin];
A[i-1][imin]=A[i-1][imax];
A[i-1][imax]=tmp;
}
min=A[i][0];imin=0;
max=A[i][0];imax=0;
for(j=0;j<n;j++)
{
if(A[i][j]<min){min=A[i][j];
imin=j; }
if(A[i][j]>max){max=A[i][j];
imax=j; }
}
tmp=A[n][imin];
A[n][imin]=A[n][imax];
A[n][imax]=tmp;
выаавав вне форума Ответить с цитированием
Старый 11.05.2012, 17:10   #2
reset
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 14
По умолчанию

а если попробовать вот так:
Код:
#include <iostream>
#include <cstdlib>

void matrix( int** array, int size ) {

     for ( int j = 0; j < size; ++j ) {
        for ( int i = 0; i < size; ++i) {
            array[j][i] = rand()%99 + 1;
        }
    }
}

void swap_matrix( int** array, int size ) {
     for( int j = 0; j < size; ++j ) {
    	int max  = 0, min  = 0;
    	int imax = 0, imin = 0;
        for ( int i = 0; i < size; ++i ) {
            if ( i == 0 ) {
                 min = array[j][i];
                 imin = 0;
            }
            if ( max < array[j][i] ) {
                 max = array[j][i];
                 imax = i;
            }
            if ( min > array[j][i] ) {
                 min = array[j][i];
                 imin = i;
            }
        }
        array[j][imin] = max;
        array[j][imax] = min;
    }
}

void show( int** array, int size ) {
     for( int j = 0; j < size; ++j ) {
        for ( int i = 0; i < size; ++i ) {
             std::cout << array[j][i] << " ";
        }
        std::cout << std::endl;
    }
}

int main( int argc, char** argv ) {

	srand(time(NULL));

    int array[5][5];
    int** temp = new int*[5];
    for ( int i = 0; i < 5; ++i )
        temp[i] = array[i];

    matrix( temp, 5);
    show( temp, 5 );
    swap_matrix( temp, 5 );
    std::cout << std::endl;
    show( temp, 5 );

    delete [] temp;

    return 0;
}
reset вне форума Ответить с цитированием
Старый 11.05.2012, 18:09   #3
выаавав
 
Регистрация: 28.09.2011
Сообщений: 5
По умолчанию

спасибо за труд но я уже все сделал все оказалось гораздо проще)
выаавав вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Матрица ScareCroW12 Помощь студентам 3 16.05.2011 16:12
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
Матрица Юрийильич Паскаль, Turbo Pascal, PascalABC.NET 4 20.04.2010 20:21
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11