Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Женя Ковтунов
0 / 0 / 0
Регистрация: 29.09.2015
Сообщений: 27
1

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

05.01.2016, 02:23. Просмотров 906. Ответов 7
Метки нет (Все метки)

где ошибка ?
нужно найти малейшие элементы каждой строки квадратной матрицы и поместить их на главную диагональ а диагональные элементы на места наибольших

вот код
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<conio.h>
#include<random>
#include<time.h>
using namespace std;
 
void main()
{
    int tmp;
    int min;
    int max,k,q;
    const int n = 3;
    int matrix[n][n];
    
    
    srand(time(NULL));
    for (int i = 0; i < n; i++)//водимо матрицю
    {
        for (int j = 0; j < n; j++)
        {
            matrix[i][j] = rand()%10;
        }
    }
    cout << "1 matrix:" << endl;
    for (int i = 0; i < n; i++)//1 matrix
    {
        for (int j = 0; j < n; j++)
        {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
    cout << "2 matrix:" << endl;
    for (int i = 0; i < n; i++)// 2 matrix
    {
        min = matrix[i][0];
        max = matrix[i][0];
        for (int j = 0; j < n; j++)
        {
            
            if (matrix[i][j] < min)
            {
                min = matrix[i][j];
                
            }
            if (matrix[i][j] > max)
            {
                max = matrix[i][j];
                
            }
            
                tmp = min;
                min=matrix[i][i];
                matrix[i][i] = tmp;
            }
        
    }
 
    
    cout << endl;
    for (int i = 0; i < n; i++)// 3 matrix
    {
        
        for (int j = 0; j < n; j++)
        {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
    
    _getch();
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2016, 02:23
Ответы с готовыми решениями:

Функции: найти максимальные элементы в строках матрицы и переместить их на главную диагональ
Ребята, помогите пожалуйста с программой . Тема для меня новая.... Дано матрицы А(3,3), В(5,5) ,...

Отсортировать главную диагональ матрицы по возрастанию, найти ее максимальный и минимальный элементы
Люди помогите отсортировать главную диагональ матрицы по возрастанию Очень нужно... Саму матрицу я...

Создать функцию нахождения минимального элемента квадратной матрицы и сортировать её главную диагональ.
Как задается квадратная матрица и как сделать сортировку?

Функции (Составьте программу, обнуляющую главную диагональ квадратной матрицы, если в ней найдется хотя бы один отрицательный элемент)
Дан двумерный массив А(M, M) в виде квадратной матрицы. Составьте программу, обнуляющую главную...

Отсортировать элементы каждой строки квадратной матрицы размерностью N по убыванию.
добрый день.... нужна ваша помощь.... Отсортировать элементы каждой строки квадратной матрицы...

7
_Valera_
490 / 372 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.01.2016, 03:32 2
Цитата Сообщение от Женя Ковтунов Посмотреть сообщение
C++
1
min=matrix[i][i];
может так?
C++
1
matrix[i][i] = min;
Добавлено через 1 минуту
Цитата Сообщение от Женя Ковтунов Посмотреть сообщение
а диагональные элементы на места наибольших
Цитата Сообщение от Женя Ковтунов Посмотреть сообщение
C++
1
2
3
4
if (matrix[i][j] > max)
{
    max = matrix[i][j];
}
еще надо индексы запоминать.
0
Женя Ковтунов
0 / 0 / 0
Регистрация: 29.09.2015
Сообщений: 27
05.01.2016, 19:41  [ТС] 3
если я пишу вот так то малейшие элементы каждой строки квадратной матрицы заменяют элементы главной диагонали,а как сделать штоб и элементы главной диагонали заменяли малейшие элементы каждой строки
C++
1
2
3
tmp = matrix[i][i];
matrix[i][i] = min;
min = tmp;
0
_Valera_
490 / 372 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.01.2016, 19:45 4
Цитата Сообщение от Женя Ковтунов Посмотреть сообщение
а как сделать штоб и элементы главной диагонали заменяли малейшие
Цитата Сообщение от _Valera_ Посмотреть сообщение
еще надо индексы запоминать.
надо запомнить индексы на минимальный элемент. И потом подставить.
0
05.01.2016, 19:45
Женя Ковтунов
0 / 0 / 0
Регистрация: 29.09.2015
Сообщений: 27
05.01.2016, 20:17  [ТС] 5
вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for (int i = 0; i < n; i++)//min max
    {
        
        if (min > A[i])
        {
            min = A[i];
                k=i;
        }
        if (max < A[i])
        {
            max = A[i];
            q = i;
        }
        cout << A[i] << " ";
    }
 
temp = A[k];
    A[k] = A[q];
    A[q] = temp;
0
_Valera_
490 / 372 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.01.2016, 20:32 6
Цитата Сообщение от Женя Ковтунов Посмотреть сообщение
вот так?
ну если работает, то да.
0
Женя Ковтунов
0 / 0 / 0
Регистрация: 29.09.2015
Сообщений: 27
05.01.2016, 20:44  [ТС] 7
работает только когда min и max стоят рядом.я не понимаю почему
0
olya7
499 / 312 / 235
Регистрация: 18.02.2013
Сообщений: 748
05.01.2016, 20:53 8
Лучший ответ Сообщение было отмечено Женя Ковтунов как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i < n; i++)// 2 matrix
    {
        min = 0;max=0;
        for (int j = 1; j < n; j++)
            
            if (matrix[i][j] < matrix[i][min])min = j;
            else if (matrix[i][j] > matrix[i][max])max = j;
 
           
                tmp =matrix[i][i];
                matrix[i][i]=matrix[i][min];
                matrix[i][max]=tmp;
    }
1
05.01.2016, 20:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2016, 20:53

Найти сумму элементов матрицы и заменить ею главную диагональ матрицы
Вот что я написал: // ConsoleApplication17.cpp: определяет точку входа для консольного приложения....

В каждой строке матрицы max и min элементы поместить на первую/последнюю позицию строки соответственно
Найти в каждой строке матрицы A(N,M) максимальный и минимальный элементы и поместить их на место...

Найти наибольшие элементы каждой строки матрицы и поместить их на главную диагональ
Найти наибольшие элементы каждой строки матрицы Z(16,16) и поместить их на главную диагональ....


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

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

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