Форум программистов, компьютерный форум 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. Программа должна определить число свободных... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
24.09.2012, 21:40     Заполнение главной диагонали матрицы максимальными элементами
Цитата Сообщение от jon_illien Посмотреть сообщение
Путем перестановки элементов добиться того, чтобы ее максимальный элемент находился в левом верхнем углу (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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
 
template <class T>
void Func(T ** arr, int size);
 
int main()
{
    int i, j;//Счётчики
    int m      = 0;//Будет содержать размерность матрицы
    int ** arr = 0;//Указатель на матрицу
    cout<<"Enter size of matrix : ";cin>>m;
    srand(time(0));//Устанавливаем нач значение в генераторе случ чисел
    arr = new int *[m];//Выделили память под указатели на строки матрицы
    cout<<"\tInput array\n";
    for(i = 0; i < m; i++)
    {
        arr[i] = new int[m];////Выделили память под элементы i-й строки матрицы
        for(j = 0; j < m; j++)
            cout<<setw(3)<<(arr[i][j] = rand()%(m*m))<<" ";
        cout<<endl;
    }
    Func(arr, m);//Преобразуем массив
    cout<<"\tTransformed array\n";
    for(i = 0; i < m; i++)
    {
        for(j = 0; j < m; j++)
            cout<<setw(3)<<arr[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
 
template <class T>
void Func(T ** arr, int size)
{
    int i, j, k;
    int imax = 0;
    int jmax = 0;
    for(k = 0; k < size; k++)
    {
        imax = (jmax = k);
        for(i = 0; i < size; i++)
        for(j = 0; j < size; j++)
        {
            
            if(i == j && i <= k) 
                continue;//Не рассматриваем предыдущие элементы на главной диагонали
            else
            {
                if(arr[imax][jmax] < arr[i][j])
                {
                    imax = i;
                    jmax = j;
                }
            }
        }
        swap(arr[k][k], arr[imax][jmax]);
    }
}
Проверка http://codepad.org/YBHOFxtK
Миниатюры
Заполнение главной диагонали матрицы максимальными элементами  
 
Текущее время: 17:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru