Форум программистов, компьютерный форум CyberForum.ru

Поменять местами строку матрицы с наименьшей суммой элементов со строкой с наибольшей суммой элементов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Добавить в конец первой строки, последние n2-n1 слов второй строки http://www.cyberforum.ru/cpp-beginners/thread82569.html
помогите пожалуйста! Даны две строки. Пусть n1 - число слов в первой строке, а n2 - во второй (n1<n2). Добавить в конец первой строки, последние n2-n1 слов второй строки.
C++ Как заставить аудиофайл петь только консолем Как заставить аудиофайл петь только с помощи консоли,чтобы никакие плееры не были?Хочу написать говорящюю консоль..написать А сказала А http://www.cyberforum.ru/cpp-beginners/thread82568.html
Рисование в picturebox по таймеру C++
Доброго времени суток!!! Как прорисовывать фигуры в picturebox по таймеру? Приведите пример, пожалуйста (для visual c++). Заранее спасибо!!!
написать словарик C++
у меня есть словарик в текст. файле вида ааа ыыы вввввввв надо написать функцию которая удаляет\сортирует\выводит словарь,надо сначала весь текст поместить в массив вот мой набросок char* str; ifstream f; f.open("c:\\text.txt"); while(!f.fail()){ f>>str;
C++ Случайные числа http://www.cyberforum.ru/cpp-beginners/thread82534.html
Создать матрицу случайных чисел, если max элемент располагается левее минимального то тогда сложить элементы левой половинки матрицы.
C++ Ряды Помогите плиз с прогой,если не трудно её полный текст ∑(от n=1 до бесконечности) n/(3n-1) подробнее

Показать сообщение отдельно
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
09.01.2010, 02:05     Поменять местами строку матрицы с наименьшей суммой элементов со строкой с наибольшей суммой элементов
в первой задаче матрица может быть любая, во 2й и 3й только квадратная.

Пусть у нас будет матрица интов in Matr [row,col]
нахождение строк с наименьшей и наибольшей суммой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int sum [row], max, min, imax, imin;
for (int i=0; i<row; i++)
{
    sum[i]=0;
    for (int j=0; j<col; j++)
        sum[i]+=Matr[i][j];
}
max = -9999;
min = 9999;
for (int i=0; i<row; i++)
{
    if (sum[i] >= max)
    {
        max = sum[i];
        imax = i;
    }
    if (sum[i] <= min)
    {
        min = sum[i];
        imin = i;
    }
}
Т.о. у тебя получается imin - номер строки с наименьшей суммой, imax - номер строки с наибольшей суммой. Если надо найти тоже самое для столбцов, то первой части где суммы находишь, вместо
C++
1
2
3
4
5
6
for (int i=0; i<row; i++)
{
    sum[i]=0;
    for (int j=0; j<col; j++)
        sum[i]+=Matr[i][j];
}
у тебя будет:
C++
1
2
3
4
5
6
for (int i=0; i<col; i++)
{
    sum[i]=0;
    for (int j=0; j<row; j++)
        sum[i]+=Matr[j][i];
}
ну и еще в след цикле будет не до row а до col суммы перебирать.


Ну, поменять местами строку n со строкой m:
C++
1
2
3
4
5
6
7
int tmp;
for(int i=0; i<col; i++)
{
    tmp=Matr[m][i];
    Matr[m][i]=Matr[n][i];
    Matr[n][i]=tmp;
}
Строку m со столбцом n (матрица квадратная, размером size*size):
C++
1
2
3
4
5
6
7
int tmp;
for(int i=0; i<size; i++)
{
    tmp=Matr[m][i];
    Matr[m][i]=Matr[i][n];
    Matr[i][n]=tmp;
}
 
Текущее время: 10:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru