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

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

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

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

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

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

/*Дана матрица 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом (C++):

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

Поменять местами максимальный элемент матрицы с его первым элементом а минимальный с последним - C++
ДВУМЕРНЫЙ МАССИВ: Поменять местами максимальный элемент матрицы F(k,p)в его первым элементом, а минимальный элемент – с последним. Найти...

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

Поменять местами в каждой строке матрицы минимальный и максимальный элементы, подскажите ошибки - C++
Помогите мне найти мои ошибки. В произвольной матрице поменять местами в каждой строке минимальный и максимальный элементы. Надо чтобы...

Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним - C++
Здравствуйте. Помогите пожалуйста написать программу: для поиска минимального и максимального элементов массива из 15 действительных чисел....

Найти максимальный и минимальный элемент в каждой строке матрицы и поменять их местами - C++
Дана матрица вещественных чисел N х М. Количество строк N и столбцов М задается пользователем. Найти максимальный и минимальный элемент в...

2
magirus
28.04.2013, 12:02
  #2
 Комментарий администратора 
называйте темы информативно, согласно правил форума
0
faLek
99 / 100 / 7
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2013, 00:28
Привет! Вот еще темы с ответами:

Найти минимальный элемент матрицы, и поменять его местами с первым элементом - C++
вот задание: Найти минимальный элемент матрицы С (размер m*n), и поменять его местами с первым элементом. #include&lt;stdio.h&gt; ...

Найти максимальный по абсолютной величине элемент и поменять его местами с последним элементом матрицы - C++
&quot;Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Найти максимальный по абсолютной величине элемент и...

В произвольной матрице A [ N ][ M ] поменять местами в каждой строке минимальный и максимальный элементы - C++
Здраствуйте,помогите пожалуйста с кодом для данной задачи: В произвольной матрице A поменять местами в каждой строке минимальный и...

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


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

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

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