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

Заполнение главной диагонали матрицы максимальными элементами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Форматированный потоковый вывод http://www.cyberforum.ru/cpp-beginners/thread657176.html
Вопрос первый: istream& operator>> (istream& stream, matrix& obj){ cout << "Pls, enter matrix elements:" << endl; for (int i = 0; i < obj.Rows; i++){ for (int j = 0; j < obj.Cells; j++){ stream >> obj.Matrix; // после выполнения этой строчки программа сама //переходит на следующую строчку. Как исправить? // cout << " "; }
C++ Матрицы: предложить пользователю ввести номер ученика и выдать его среднюю оценку Домашнее задание: двумерные массивы. 2. Написать программу, в которой в двумерном массиве будет храниться информация об оценках каждого из 20 учеников класса по предметам (строка – это номер ученика в журнале, столбец – это номер предмета). Общее число предметов – 10. Программа должна предложить пользователю ввести номер ученика и выдать его среднюю оценку. http://www.cyberforum.ru/cpp-beginners/thread657161.html
C++ Симметрично поменять местами все столбцы чисел относительно среднего столбца матрицы
Домашнее задание: двумерные массивы. 3. Написать программу, в которой создается двумерный массив. Нужно симметрично поменять местами все столбцы чисел относительно среднего столбца. Вывести на экран первоначальный и полученный массивы.
C++ Внести в массив оценки нового ученика с заданной позиции
Домашнее задание: двумерные массивы. 4. Написать программу, в которой в двумерном массиве хранятся годовые оценки по 10 предметам за 9-й класс каждого из 20 учеников класса (строка – это номер ученика, столбец – это номер предмета). В начале года в класс приходит новый ученик. Нужно внести в массив оценки нового ученика так, чтобы пользователь вводил номер ученика в списке и его оценки...
C++ динамические структуры не получается продублировать элемент http://www.cyberforum.ru/cpp-beginners/thread657153.html
Здравствуйте... При решение данной задачи <В составе программы описать функцию, которая дублирует вхождение каждого элемента списка One и формирует из этих значений список Double.> столкнулся с проблемой дублирования элементов списка (у меня дублируется только первый элемент) Что-то не так в цикле for а вот что именно... // bdz1.cpp: определяет точку входа для консольного приложения. // ...
C++ Информация о проданных билетах храниться в матрице. Определить количество свободных мест Домашнее задание: двумерные массивы. 1. В поезде 12 вагонов, в каждом из которых 36 мест. Написать программу, в которой информация о проданных билетах будет храниться в двумерном массиве (номер строки – это номер вагона, номер столбца - это номер места). Если билет продан на какое-то место, то элемент массива имеет значение 1, в противном случае – 0. Программа должна определить число свободных... подробнее

Показать сообщение отдельно
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
24.09.2012, 17:57     Заполнение главной диагонали матрицы максимальными элементами
спасибо, что откликнулись. нужно решить такую задачу:

Путем перестановки элементов добиться того, чтобы ее максимальный элемент находился в левом верхнем углу (0, 0), следующий по величине – в позиции (1, 1), следующий по величине – в позиции (2, 2) и т.д., заполнив таким образом всю главную диагональ.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class TYPE> void Func(TYPE x[][N], int M)
{
    int max, imax, jmax;
 
    for(int k=0; k<M; k++)
    {
        imax = 0; jmax = 0;
 
        for(int i=0; i<M; i++)
        {
            for(int j=1; j<N; j++)
            {
                if(x[i][j] > x[imax][jmax] && (i != k && j != k))
                    x[imax][jmax] = x[i][j];
            }
        }
        swap(x[k][k], x[imax][jmax]);
    }
}
Добавлено через 1 час 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    int max, imax, jmax;
 
    for(int k=0; k<N; k++)
    {
        imax = 0; jmax = 0;
 
        for(int i=0; i<N; i++)
        {
            for(int j=1; j<N; j++)
            {
                if(x[i][j] > x[imax][jmax] && (i != k && j != k))
                {
                    imax = i;
                    jmax = j;
                    max = x[i][j];
                }
            }
        }
        swap(x[k][k], x[imax][jmax]);
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru