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

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

Восстановить пароль Регистрация
 
Nicolai35
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 2
26.01.2016, 16:40     В каждой строке матрицы поменять местами максимальный и первый, минимальный и последний элементы #1
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место
первого и последнего элемента строки соответственно. Матрицу вывести в общепринятом виде. в С++ как будет?

Матрица:F(N,M)
Условия и
ограничения:N ≤20
M ≤10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2016, 16:40     В каждой строке матрицы поменять местами максимальный и первый, минимальный и последний элементы
Посмотрите здесь:

C++ В заданом одномерном масиве целого типа поменять местами следующие два элемента: первый минимальный и последний максимальный
C++ В массиве переставить местами первый и максимальный элементы, а также последний и минимальный
C++ В прямоугольной матрице размера m*n в каждой строке поменять местами первый и минимальный элементы.
C++ В произвольной матрице A [ N ][ M ] поменять местами в каждой строке минимальный и максимальный элементы
C++ Массивы. Поменять местами первый минимальный и последний максимальный элементы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Не Эксперт C++
1428 / 614 / 172
Регистрация: 24.08.2014
Сообщений: 2,486
Записей в блоге: 1
Завершенные тесты: 2
26.01.2016, 17:03     В каждой строке матрицы поменять местами максимальный и первый, минимальный и последний элементы #2
Nicolai35, Сами что-нибудь сделали?
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
26.01.2016, 17:16     В каждой строке матрицы поменять местами максимальный и первый, минимальный и последний элементы #3
Nicolai35, код с коленки:

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
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
 
int random(int min, int max)
{
   static bool first = true;
   if ( first )
   {
      srand(time(NULL));
      first = false;
   }
   return min + rand() % (max - min);
}
 
int main()
{
    int max,max_index,min,min_index,m,n,tmp;
    while(true)
    {
        cout << "Enter size of N: ";
        cin >> n;
        if(n<=20)
            break;
    }
    while(true)
    {
        cout << "Enter size of M: ";
        cin >> m;
        if(m<=10)
            break;
    }
    int matrix[n][m];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            matrix[i][j]=random(-9,9);
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    for(int i=0;i<n;i++)
    {
        max = matrix[i][0];
        max_index=0;
        min = matrix[i][0];
        min_index=0;
        for(int j=0;j<m;j++)
        {
            if(max<matrix[i][j])
            {
                max=matrix[i][j];
                max_index++;
            }
            if(min>matrix[i][j])
            {
                min=matrix[i][j];
                min_index++;
            }
        }
        tmp = matrix[i][0];
        matrix[i][0]=min;
        matrix[i][min_index] = tmp;
        tmp = matrix[i][m-1];
        matrix[i][m-1]=max;
        matrix[i][max_index] = tmp;
    }
 
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}
GbaLog-
Не Эксперт C++
1428 / 614 / 172
Регистрация: 24.08.2014
Сообщений: 2,486
Записей в блоге: 1
Завершенные тесты: 2
26.01.2016, 17:18     В каждой строке матрицы поменять местами максимальный и первый, минимальный и последний элементы #4
Хотя впрочем.
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
#include <iostream>
#include <random>
#include <ctime>
 
using namespace std;
 
int main() {
    static mt19937 gen(time(nullptr));
    uniform_int_distribution<int> dist(-100,100);
    const int n = 20,m = 10;
    int** f = new int*[n];
    int min[n] = {0}; int max[n] = {0};
    for( int i = 0; i < n; i++ ) {
        f[i] = new int[m];
        for( int j = 0; j < m; j++ ) {
            f[i][j] = dist(gen);
            if(f[i][min[i]] > f[i][j]) min[i] = j;
            if(f[i][max[i]] < f[i][j]) max[i] = j;
        }
    }
    for( int i = 0; i < n; i++ ) {
        for( int j = 0; j < m; j++ ) {
            cout << f[i][j] << ' ';
        }
        cout << endl;
    }
    cout << endl << endl;
    for( int i = 0; i < n; i++ ) {
        swap(f[i][min[i]],f[i][m-1]);
        swap(f[i][max[i]],f[i][0]);
    }
    for( int i = 0; i < n; i++ ) {
        for( int j = 0; j < m; j++ ) {
            cout << f[i][j] << ' ';
        }
        cout << endl;
    }
    cout << endl;
    cin.get();
    return 0;
}
Yandex
Объявления
26.01.2016, 17:18     В каждой строке матрицы поменять местами максимальный и первый, минимальный и последний элементы
Ответ Создать тему
Опции темы

Текущее время: 10:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru