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

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали - C++

Восстановить пароль Регистрация
 
Hrustik
2 / 2 / 0
Регистрация: 29.05.2013
Сообщений: 80
16.06.2013, 19:02     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #1
Есть целочисленная квадратная матрица.Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2013, 19:02     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали
Посмотрите здесь:

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали C++
В каждой строке матрицы A (n, n) найти наибольший элемент и поменять его местами с соответствующим диагональным элементом. C++
Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали C++
Найти в каждой строке матрицы наибольший элемент и поменять его местами с элементом главной диагонали C++
Найти в каждом столбце наибольший элемент и поменять его местами с элементом главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
17.06.2013, 00:51     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #2
числа рандом или нет?

Добавлено через 9 минут
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
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    srand(time(NULL));
    int mas[100][100],n,max=0,p=0,x=0;;
    cout << "Enter number = ";cin >> n;
    cout << "\nArray [start] = \n";
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<n;j++)
        {
            mas[i][j]=rand()%10;
            cout << mas[i][j] << " ";
        }
        cout << "\n";
    }
    for (int i=0;i<n;i++)
    {
        max=mas[i][0];
        for (int j=0;j<n;j++)
        {
            if (max<mas[i][j]) {max=mas[i][j];p=j;}
        }
        x=mas[i][p];mas[i][p]=mas[i][i];mas[i][i]=x;
    }
        cout << "\nArray [finish] = \n";
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<n;j++)
        {
            cout << mas[i][j] << " ";
        }
        cout << "\n";
    }
    cout << "\n";
    system("pause");
}
awful1992
18 / 18 / 3
Регистрация: 20.11.2012
Сообщений: 49
17.06.2013, 01:08     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #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
#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;
 
 
int main()
{
    setlocale( LC_ALL,"Russian");// включаем русскую раскладку
    cout << "Введите количество размерность матрицы" << endl;
    unsigned int lenthOfMatrix=0;//переменная длины матрицы
    cin >> lenthOfMatrix;//считываем длину матрицы
    //создаем матрицу
    int** Matrix = new int *[lenthOfMatrix];
    for (int i = 0; i < lenthOfMatrix; i++)
        Matrix[i] = new int [lenthOfMatrix];
    int max=0;
    unsigned int maxj=0;
    cout << "Вводите элементы массива:" << endl;
 
for(int i=0;i<lenthOfMatrix;i++)
{
    for(int j=0;j<lenthOfMatrix;j++)
    {
        cout << "A["<< i << "][" << j << "] = ";
        cin >> Matrix[i][j];//считываем матрицу
            if(Matrix[i][j]>max) //проверка на максимальный элемент
                {
                    max=Matrix[i][j];
                    maxj=j;
                }
        
    }
    max=0;
    //перестановка местами максимального элемента с элементом главной диагонали
    int temp = Matrix[i][i];
        Matrix[i][i]=Matrix[i][maxj];
        Matrix[i][maxj]=temp;
}
cout << "Результирующая матрца:" << endl;
//Вывод результата
for(int i=0;i<lenthOfMatrix;i++)
{
    for(int j=0;j<lenthOfMatrix;j++)
    {
        cout << Matrix[i][j] << " ";
    }
    cout << endl;
}
    getch();
    
    for (int i = 0; i < lenthOfMatrix; i++)
    {
        delete [] Matrix[i];
    }
    delete [] Matrix;
    return 0;
}
Добавлено через 1 минуту
newyork7776,
Цитата Сообщение от newyork7776 Посмотреть сообщение
int mas[100][100]
нехорошо так делать
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
17.06.2013, 01:32     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #4
C++
1
int mas[100][100]
Цитата Сообщение от awful1992 Посмотреть сообщение
нехорошо так делать
знаю,но времени не хватило редактировать
Yandex
Объявления
17.06.2013, 01:32     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали
Ответ Создать тему
Опции темы

Текущее время: 15:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru