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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Библиотека для 3d графики http://www.cyberforum.ru/cpp-beginners/thread191963.html
Посоветуйте, пожалуйста, библиотеку для построения в 3д
C++ Чтение BMP Всем привет. Пытаюсь прочитать данные BMP из файла размером 50 на 25 и поставить их в соотвествие массиву по условию - true если пиксель желтый (255, 255, 0) и false во всех остальных случаях. ... http://www.cyberforum.ru/cpp-beginners/thread191960.html
C++ Поиск матрицы в матрице
Здравствуйте, подскажите, пожалуйста, как написать программу, чтобы считала, сколько раз одна матрица встречается в другой! Может кто-то писал что-то подобное...Не могу ничего придумать((
Помогите выбрать компилятор С++ C++
Всем Привет. Неделю назад я озадачился изучением С++. Читая книгу естественно намного лучше запоминать коды сразу печатая их. я вот только не смог определить какой компилятор практичней. На...
C++ Ошибка в методе, помогите исправить http://www.cyberforum.ru/cpp-beginners/thread191942.html
Помогите дописать 1 метод... Нужна функция-друг, которая позволяет вывести размер заработанной платы каждого сотрудника фирмы за вычетом подоходного налога,составляющего 12% от суммы заработка....
C++ СкАчУщИе БуКаФфКи Интересен скрипт/программа которая за меня будет через букву менять регистр, но что бы она меняла в любых полях ввода, будь то аська, браузер или игра=) Ооооочень нужно=) подробнее

Показать сообщение отдельно
HakimotoX
0 / 0 / 0
Регистрация: 10.11.2010
Сообщений: 22

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

16.11.2010, 09:14. Просмотров 420. Ответов 2
Метки (Все метки)

Доброго времени суток господа!

Помогите закончить программу, условие таково:
В произвольной матрице поменять местами в каждой строке минимальный и максимальный элементы.

Необходимо дополнить case 3:

Показать:
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#include "stdafx.h"
 
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <memory.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <string.h>
 
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int menu = 0, W = 0, H = 0;
    int **a = NULL;
    int min = 0, max = 0;
    int sMin = 0, sMax = 0;
 
    int wasEnt = 0;
    int wasCalc = 0;
    int lock = 0;
    
    do
    {
        printf("\n");
        printf("+---------------------------------------------------------------------------------+\n");
        printf("|†† Программа для работы с двумерным массивом ††                                  |\n");
        printf("|                                                                                 |\n");
        printf("|1. Ввести размер матрицы                                                         |\n");
        printf("|2. Вывести на экран исходный массив                                              |\n");
        printf("|3. Поменять местами, максимальный и минимальный элементы матрицы в каждой строке |\n");
        printf("+---------------------------------------------------------------------------------+\n");
        printf(" 0. Выход\n\n");
        printf("Выберете пункт меню: ");
 
        scanf("%d", &menu);
 
        srand(time(NULL));
 
        switch(menu)
        {
        case 1:
            do
            {
                printf("\nВведите размер матрицы:\n\n");
                printf("ширина: ");
                scanf("%d", &W);
                printf("высота: ");
                scanf("%d", &H);
                if (W && H <= 0)
                {
                    printf("\n\aОШИБКА!: Значение должно быть больше нуля!\nвведите еще раз...\n");
                }
                else
                {
                printf("ввод завершен...");
                printf("\n\n");
                system("pause");
                }
            } while (W && H <= 0);
            wasEnt = 1;
            wasCalc = 0;
            break;
        case 2:
            if (1 == wasEnt)
            {               
                if (lock == 0)
                {
                    lock = 1;
                    a = new int *[H];
                    for (int i = 0; i < H; ++i)
                    {
                        a[i] = new int [W];
                    }
                }
                for (int i = 0; i < H; ++i)
                {
                    for (int j = 0; j < W; ++j)
                    {
                        a[i][j] = rand() % 10;
                    }
                }
 
                printf("\nИсходный массив: \n\n");
                for (int i = 0; i < H; ++i)
                {
                    for (int j = 0; j < W; ++j)
                    {
                        printf("[%d] ", a[i][j]);
                    }
                    printf("\n\n");
                }
                system("pause");
                wasCalc = 1;
            }
            else
            {
                printf("\n\aОШИБКА!: Сначала введите размер матрицы! Выберете пункт меню 1.\n");
                printf("\n");
                system("pause");
            }
            break;      
        case 3:
            if (wasCalc)
            {   
                int min = a[0][0];
                int max = a[0][0];
                for (int i = 0; i < H; ++i)
                {
                    for (int j = 0; j < W; ++j)
                    {
                        if(a[i][j] > max)
                        { 
                            max = a[i][j];
                            sMax = i;
                        }   
                        if(a[i][j] < min)
                        { 
                            min = a[i][j];
                            sMin = j;
                        }               
                    }                   
                }
                printf("\nИзмененый массив: \n\n");
                for (int i = 0; i < H; ++i)
                {
                    for (int j = 0; j < sMin; ++j)
                    {
                        printf("[%d] ", a[i][j]);
                    }   
                    printf("\n\n");
                }
                system("pause");
                wasCalc = 0;                
            }
            else
            {
                printf("\n\aОШИБКА!: Сначала проверьте исходный массив! Выберете пункт меню 2.\n");
                printf("\n");
                system("pause");
            }
            break;
        case 0:
            break;
        default:
            printf("\n\aОШИБКА!: Неверный пункт меню!\n");
            printf("\n");
            system("pause");
        }       
    } while (menu != 0);
 
    for (int i = 0; i < H; ++i)
    {
        delete [] a[i];
    }
    
    delete [] a;
 
    return 0;
}


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