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

Матрица, найти и поменять местами минимальный и максимальный элемент - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считывание из файла трехмерного массива и запись http://www.cyberforum.ru/cpp-beginners/thread609445.html
Доброго времени суток, прошу помочь в следующем. :) Собственно вот создание трехмерного массива int c = 2; int a = 3; int b = 2; int ***privat = new int** ; for (int i = 0; i < c; i++) { privat = new int* ;
C++ Библиотека valarray Недавно спрашивал про библиотеки set и list. Там все разобрался, а вот как добавлять в valarray и что более интересно как искать там элемент?ведь там нет итераторов, то есть нельзя использовать команду find? http://www.cyberforum.ru/cpp-beginners/thread609436.html
C++ Составить программу, содержащую информацию о книгах в библиотеке
Условие: составить программу, содержащую информацию о книгах в библиотеке. Сведения о книгах включают: номер, фамилию и инициалы автора, название, год издания, количество экземпляров данной книги в библиотеке. Программу снабдить меню (помимо запросов должны присутствовать пункты создания, просмотра файла, добавление и удаления записей, выход). По запросы выдавать сведения о наличии книг данного...
C++ Почему не стоит использовать ^(XOR) в swap
Прочитал статейку, http://betterexplained.com/articles/swap-two-variables-using-xor/ Что-то не до понял, почему нельзя использовать эту фичу в swap.
C++ Задача с динамической структурой данных списка http://www.cyberforum.ru/cpp-beginners/thread609413.html
Написать консольную программу на языке С++, в которой должно быть предусмотрено: cоздание односвязного списка; просмотр односвязного списка; oбработка списка в соответствии с вариантом задания; 1. Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке. Сведения о каждом автобусе содержат: номер автобуса; фамилию и инициалы водителя; номер...
C++ Касательно конструктора копирования Вопрос следующий. У меня есть класс "Точки" есть класс "группы" и есть класс "возможные группы". 3 класса. в классе "группы" есть массив который хранит в себе ОБЪЕКТЫ точек. так же хотелось бы чтобы класс "возм. гр" хранил в себе объекты "группы" но реализовать не получается. Видимо проблема в конструкторе копирования. Вот классы: class TTo4ka { public: подробнее

Показать сообщение отдельно
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
19.06.2012, 19:56     Матрица, найти и поменять местами минимальный и максимальный элемент
Предлагаю свой вариант

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream> 
#include <ctime> 
#include <iomanip>
#include <cstdlib> 
using namespace std;
int main() 
{   
    setlocale(0, "rus");
    srand((unsigned) time(0));
    const int N = 5; // размер матрицы
    int matrix[N][N];  // матрица 
    int i, j;  
    int n = 2; 
    int min;  
    int max; 
    int temp;
    int index_max_i = 0, index_max_j = 0; // индексы
    int index_min_i = 1, index_min_j = 0;
 
    for ( i = 0; i < N; i++) 
        for ( j = 0; j < N; j++) 
            matrix[i][j] = rand() % 10; // заполняем матрицу случайными числами
 
    for ( i = 0; i < N; i++)  
    
        for ( j = 0; j < N; j++)  
        {
            if(j % 5 == 0) cout << endl; // выводим исходную матрицу
        cout << setw(3) << matrix[i][j];  
        } 
        cout << endl << endl; 
 
        min = matrix[1][0];  // мин первый элемент ниже главной диагонали
 
        for ( i = 1; i < n && n < N+1 ; i++)  
        { 
            for ( j = 0; j < i; j++)  
                 if(min > matrix[i][j]) // сравниваем с элементами ниже главной
                 {
                    min = matrix[i][j];  
                    index_min_i = i;  // сохраняем индексы
                    index_min_j = j; 
                 }
                     n++;
             }
     cout << " Минимальный элемент равен " << min << " Расположен      " << // выводим на экран
          index_min_i <<" " << index_min_j << endl;   
 
     cout << endl << endl; 
 
     max = matrix[0][0]; // первый элемент выше побочной
 
     for ( i = 0; i < N - 1; i++) 
         for ( j = 0; j < N - 1 - i; j++) 
             if(matrix[i][j] > max) 
             { 
                 max = matrix[i][j]; 
                 index_max_i = i; // сохраняем индексы
                 index_max_j = j; 
             } 
 
             cout << "Максимальный элемент равен " << max << " Расположен    " << 
                 index_max_i << " " << index_max_j << endl; 
 
             cout << endl << endl;
 
             temp = matrix[index_max_i][index_max_j];  // меняем местами
             matrix[index_max_i][index_max_j] = matrix[index_min_i][index_min_j]; 
             matrix[index_min_i][index_min_j] = temp;
 
 
             for ( i = 0; i < N; i++)  
             
                 for ( j = 0; j < N; j++)  // выводим  матрицу с изменениями
                 {
                     if(j % 10 == 0) 
                     cout << endl;  
                 cout << setw(3) << matrix[i][j]; 
               }
            cout << endl;
             return 0; 
 
              system("Pause");
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru