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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ganz1846
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 38
#1

Двумерный массив. Поменять местами max и min четных строк - C++

22.06.2014, 22:37. Просмотров 455. Ответов 1
Метки нет (Все метки)

Составить программу на языке C++ для обработки двумерных массивов с использованием указателей и входных и выходных файлов.
Дана квадратная матрица. Размерность вводится. Поменять местами max и min четных строк.
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
#include <string>
#include <iostream>
#include <iomanip>
#include <conio.h>
 
int main()
{
    srand(time(0));
    int N, max, min, max_index = 0, min_index = 0;
    std::cout << "Type N: ";
    std::cin >> N;
    int** M = new int*[N];
    for(int i = 0; i < N; i++)
        M[i] = new int[N];
    
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
        {
            std::cout << "M[" << i << "][" << j << "] = ";
            std::cin >> M[i][j];
        }
    }
    
    std::string line(4 * N + 3, '=');
    std::cout << std::endl << line << "\n\n";
    
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
            std::cout << std::setw(4) << M[i][j];
        std::cout << "\n\n";
    }
    
    for(int i = 0; i < N; i++)
    {
        if(i % 2)
        {
            max = M[i][max_index];
            min = M[i][min_index];
            for(int j = 0; j < N; j++)
            {
                if(max < M[i][j])
                {
                    max = M[i][j];
                    max_index = j;
                }
                if(min > M[i][j])
                {
                    min = M[i][j];
                    min_index = j;
                }
            }
            std::swap(M[i][max_index], M[i][min_index]);
        }
    }
    
    std::cout << line << "\n\n";
    
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
            std::cout << std::setw(4) << M[i][j];
        std::cout << "\n\n";
    }
    
    for(int i = 0; i < N; i++)
        delete [] M[i];
    delete [] M;
    
    std::cout << "\nOperation succeeded\n";
    getch();  
    return 0;
}
Добавлено через 51 минуту
надо немного изменить прогу

Добавлено через 2 часа 16 минут
help

Добавлено через 38 минут
HELP

Добавлено через 44 минуты
требуется лишь считать с файла и записать в файл

Добавлено через 1 час 1 минуту
help
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2014, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив. Поменять местами max и min четных строк (C++):

Поменять местами max и min четных строк в квадратной матрице - C++
Дана квадратная матрица. Размерность вводится. Поменять местами max и min четных строк. #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Поменять местами max и min четных строк матрицы (без функции) - C++
Сделать двумерный массив без функции на С++. Дана квадратная матрица. Размерность вводится. Поменять местами max и min четных строк. ...

Массив: Найти в каждой строке max и min, поменять их местами. - C++
Вводится квадратная матрица порядка n. Найти в каждой строке max и min, поменять их местами. Помогите пожалуйста )

5х5 random массив В главной диагонали найти min и поменять местами max массива - C++
4) 5х5 random массив. в главной диагонали найти min и поменять местами max массива. если одинаковые min или max то выбрать первый элемент.

Поменять местами MIN и MAX в массивах - C++
Здравствуйте, ни в какую не получается осуществить сабж. Вот задание: Вывести 4 массива, содержащих 4, 3, 4 и 5 компонентов. Найти...

Поменять местами min и max элемент в массиве - C++
1) Найти значение min элемента n строки и m столбца в которой он расположен. 2) Поменять местами min и max элемент в массиве. 3) Найти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
4unkur
16 / 16 / 6
Регистрация: 16.06.2014
Сообщений: 176
22.06.2014, 23:01 #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
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <ctime>
#include <fstream>
using namespace std; 
int main()
{
    srand(time(0));
    int N, max, min, max_index = 0, min_index = 0;
    cout << "Type N: ";
    cin >> N;
    int** M = new int*[N];
    for(int i = 0; i < N; i++)
        M[i] = new int[N];
    
    ifstream fin("text.txt");
    ofstream fout("text.txt");
    
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
              fout << rand()%10 << ' ';
       fout << endl;
    }
    fout << endl;
  for(int i = 0; i < N; i++)
       for(int j = 0; j < N; j++)
            fin >> M[i][j];
    
    for(int i = 0; i < N; i++)
    {
        if(i % 2)
        {
            max = M[i][max_index];
            min = M[i][min_index];
            for(int j = 0; j < N; j++)
            {
                if(max < M[i][j])
                {
                    max = M[i][j];
                    max_index = j;
                }
                if(min > M[i][j])
                {
                    min = M[i][j];
                    min_index = j;
                }
            }
            swap(M[i][max_index], M[i][min_index]);
        }
    }
    
   
    
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
        {
            
            fout << M[i][j] << ' ';
        }
            fout << endl;
    }
    
    
    for(int i = 0; i < N; i++)
        delete [] M[i];
    delete [] M;
   fin.close();
   fout.close();
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2014, 23:01
Привет! Вот еще темы с ответами:

Поменять местами max и min элементы файла - C++
Необходимо поменять местами max и min элементы файла, помогите!

Нахождение max и min в матрице . и поменять их местами - C++
Доброго времени суток столкнулась с этой программой в лоб в лоб . И ни как не могу вывести матрицу с этими указателями, я в них запуталась...

В каждой строке матрицы найти min и max, поменять местами - C++
Условие: В каждой строке матрицы A=(aij)mxn найти максимальный и минимальный элементы. Сформировать матрицу B=(bij)mxn, переставляя в...

Ввести значения элементов массива, поменять местами min/max элементы - C++
Помогите пожалуйста, нада написать программу которая позволяет ввести 10 елементов одного массива, результат выводилоб на екран,также...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru