Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 26
1

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом

28.04.2013, 11:58. Показов 3387. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я решила задачку но что-то не так(ошибки никак не исправлю...
помогите исправте ошибки,что не правильно я сделала

/*Дана матрица B[N, M]. Найти в каждой строке матрицы максимальный и
минимальный элементы и поменять их местами с первым и
последним элементом строки соответственно.
*/
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
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_CTYPE,".1251");
setlocale(LC_MONETARY, ".1251");
float mas[20][20],a,b,
min,max; // мин. и макс. сначения в строке
int n,m; // n-кол.строк, m-кол.стобцов
int index_max, index_min; // индексы мин. и макс. элементов в строке
int i, // индекс строки
j; // индекс столбца
cout«"Введите количество строк: ";
cin»n;
if( !cin || n<=0 || n>20 )
{
cout «"error1: input N [1;20]"« endl;
return 1;
}
cout« "Введите количество столбцов: ";
cin»m;
if( !cin || m<=0 || m>20 )
{
cout «"error1: input M [1;20]"« endl;
return 1;
}
cout«"Ввведите диапазон: ";
cin»a»b;
cout.precision(2);
cout «"Исходный массив:\n";
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
mas[i][j]=(b-a)*rand()/32767+a;
cout.width(6);
cout« mas[i][j]« " ";
}
cout «"\n";
}
cout «"\n";
 
float tmp; // для обмена
for ( i=0; i<n;i++)
{
max=mas[i][0]; // берем за максю и мин. первый элемент строки
min=mas[i][0];
index_max = 0;
index_min = 0;
for (j=0;j<m;j++)
{
if (mas[i][j]>max)
{
max=mas[i][j];
index_max = j;
}
if (mas[i][j]<min)
{
min=mas[i][j];
index_min = j;
}
} // end for(j)
cout« "\n";
cout« "Максимальный элемент "«i+1«" строки = "«max;
cout«" Минимальный элемент "«i+1«" строки = "«min;
// ОБМЕН
// меняем макс. с первым mas[i][0]
tmp = mas[i][0];
mas[i][0] = max;
mas[i][index_max] = tmp;
// если мин. был первым, то его уже поменяли с макс. и его индекс ИЗМЕНИЛСЯ на index_max
if( index_min==0)
index_min = index_max;
// меняем мин. с последним mas[i][m-1]
tmp = mas[i][m-1];
mas[i][m-1] = min;
mas[i][index_min] = tmp;
 
} // end for(i)
 
//pol
cout«"\nПолучен массив:\n";
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout.width(6);
cout«mas[i][j]«" ";
}
cout«"\n";
}
cout«"\n";
getch();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2013, 11:58
Ответы с готовыми решениями:

Найти в каждой строке максимальный и минимальный элементы и поменять их местами с первым и последним элементом
3. Дана матрица B размерностью n×m. Найти в каждой строке матрицы максимальный и минимальный...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом
Ошибка в задаче. Может я что-то не дописал. Исправьте пожалуйста программу. Дана матрица B....

2
magirus
28.04.2013, 12:02
  #2
 Комментарий администратора 
называйте темы информативно, согласно правил форума
0
101 / 102 / 43
Регистрация: 06.03.2012
Сообщений: 478
29.04.2013, 00:28 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
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
 
int _tmain()
{
    setlocale (LC_ALL,"Russian");
    srand (time(NULL));
 
    int str,stb,max,min,imin(0),imax(0),jmax(0),jmin(0),a;
    int **massiv;
 
    cout<<"Введите колличество строк и столбцов: ";
        cout<<endl;
            cin>>str>>stb;
 
    massiv = new int * [str];
        for (register int i = 0;i<str;i++)
            {
                massiv[i] = new int [stb];  
            }
        
        cout<<"Матрица: ";
            cout<<endl;
        for (int i = 0;i<str;i++){
            for (int j = 0;j<stb;j++)
                {
                    massiv[i][j] = -10 + rand () % 21;
                        cout<<setw (3)<<massiv[i][j];
                }
            cout<<endl;
        }
 
            for (int i = 0;i<str;i++){
                    min = massiv[i][0];
                    for (int j = 0;j<stb;j++)
                    {
                        if (min > massiv [i][j])
                            min = massiv[i][j];
                            imin = i;
                            jmin = j;
                    }
                    cout<<"минимальный элемент: "<<min;
                        cout<<endl;
 
                        a = massiv[imin][jmin-1];
                        massiv[imin][jmin-1] = min;
                        massiv[imin][jmin] = a;
            }
                cout<<endl;
                
                for (int i = 0;i<str;i++){
                    max = massiv[i][0];
                    imax = i;
                    jmax = 0;
                    for (int j = 0;j<stb;j++)
                    {
                        if (max < massiv [i][j])
                            max = massiv[i][j];
                            imax = i;
                            jmax = j;
                    }
                    cout<<"максимальный  элемент: "<<max;
                        cout<<endl;
        
                        a = massiv[imax][0];
                        massiv[imax][0] = max;
                        massiv[imax][jmax] = a;
            }
                cout<<endl;
 
                    for (int i = 0;i<str;i++){
                        for (int j = 0;j<stb;j++)
                        {
                            cout<<setw (3)<<massiv[i][j];
                        }
                        cout<<endl;
                    }
        delete [] massiv;       
    system ("pause");
    return 0;
}
0
29.04.2013, 00:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2013, 00:28
Помогаю со студенческими работами здесь

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно
здравствуйте. помогите пожалуйста решить пару задач VIII.Двумерные массивы 23 Дана матрица B....

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом
Дана матрица B размера N x M . Найти в каждой строке матрицы максимальный и минимальный элементы и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru