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

В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
MikeEl
1 / 1 / 0
Регистрация: 27.03.2012
Сообщений: 52
31.05.2013, 00:47     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #1
В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы.

Массив динамический.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 00:47     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы
Посмотрите здесь:

В данной действительной матрице размера 3Х3 поменять местами строку, содержащую элемент с наибольшим значе-нием, со строкой, содержащей элемент с наим C++
Поменять местами первую строку и строку, в которой находится первый нулевой элемент. Принять, что массив просматривается слева направо и сверху вниз. C++
Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент C++
C++ В матрице из действительных чисел поменять местами первую строку и строку, содержащую наименьший элемент матрицы
C++ Массив: Поменять местами последний столбец со столбцом, содержащим наибольшее по абсолютной величине элемент матрицы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
31.05.2013, 02:11     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #2
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
class myclass {
    int str,stb,**massiv,max;
public :
    myclass (int a,int b);
    ~myclass ();
    void friend Run (myclass &x);
};
 
myclass::myclass (int a,int b)
{
    str = a;
    stb = b;
 
    srand (time(NULL));
    massiv = new int * [str];
        for (int i = 0;i<str;i++)   {   
            massiv[i] = new int [stb];
            for (int j = 0;j<stb;j++)   {
                massiv[i][j] = - 100 + rand () % 201;
                cout<<setw (3)<<massiv[i][j];
            }
            cout<<endl;
        }
}
 
myclass::~myclass ()
{
    for (int i = 0;i<str;i++)
        delete [] massiv[i];
    delete [] massiv;
}
 
void Run (myclass &x)
{
    int index = 0,temp = 0,jndex = 0;
    x.max = x.massiv[0][0];
    for (int i = 0;i<x.str;i++) {
        for (int j = 0;j<x.stb;j++) {
            if (abs (x.massiv[i][j]) > x.max)
            {
                x.max = abs (x.massiv[i][j]);
                index = i;
                break;
            }
            
            temp = x.massiv[0][j];
            x.massiv[0][j] = x.massiv[index][j];
            x.massiv[index][j] = temp;
 
        }
    }
 
    cout<<"Преобразованный массив: ";
        cout<<endl;
        for (int i = 0;i<x.str;i++) {
            for (int j = 0;j<x.stb;j++) {
                cout<<setw (3)<<x.massiv[i][j];
            }
            cout<<endl;
        }
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL,"Russian");
 
    int n,m;
 
    cout<<"Введите колличество строк и столбцов: ";
        cin>>n>>m;
 
    myclass ob (n,m);
 
    Run (ob);
 
    system ("pause");
    return 0;
}
MikeEl
1 / 1 / 0
Регистрация: 27.03.2012
Сообщений: 52
31.05.2013, 10:53  [ТС]     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #3
Цитата Сообщение от faLek Посмотреть сообщение
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
class myclass {
    int str,stb,**massiv,max;
public :
    myclass (int a,int b);
    ~myclass ();
    void friend Run (myclass &x);
};
 
myclass::myclass (int a,int b)
{
    str = a;
    stb = b;
 
    srand (time(NULL));
    massiv = new int * [str];
        for (int i = 0;i<str;i++)   {   
            massiv[i] = new int [stb];
            for (int j = 0;j<stb;j++)   {
                massiv[i][j] = - 100 + rand () % 201;
                cout<<setw (3)<<massiv[i][j];
            }
            cout<<endl;
        }
}
 
myclass::~myclass ()
{
    for (int i = 0;i<str;i++)
        delete [] massiv[i];
    delete [] massiv;
}
 
void Run (myclass &x)
{
    int index = 0,temp = 0,jndex = 0;
    x.max = x.massiv[0][0];
    for (int i = 0;i<x.str;i++) {
        for (int j = 0;j<x.stb;j++) {
            if (abs (x.massiv[i][j]) > x.max)
            {
                x.max = abs (x.massiv[i][j]);
                index = i;
                break;
            }
            
            temp = x.massiv[0][j];
            x.massiv[0][j] = x.massiv[index][j];
            x.massiv[index][j] = temp;
 
        }
    }
 
    cout<<"Преобразованный массив: ";
        cout<<endl;
        for (int i = 0;i<x.str;i++) {
            for (int j = 0;j<x.stb;j++) {
                cout<<setw (3)<<x.massiv[i][j];
            }
            cout<<endl;
        }
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL,"Russian");
 
    int n,m;
 
    cout<<"Введите колличество строк и столбцов: ";
        cin>>n>>m;
 
    myclass ob (n,m);
 
    Run (ob);
 
    system ("pause");
    return 0;
}
выдает ошибки:
Ошибка 2 error C2061: синтаксическая ошибка: идентификатор "_TCHAR"
3 IntelliSense: идентификатор "_TCHAR" не определен
Чиффа
 Аватар для Чиффа
5 / 5 / 0
Регистрация: 24.09.2012
Сообщений: 54
31.05.2013, 10:56     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #4
Вместо _TCHAR* поставьте просто char.
и функцию _tmain на main замените.
MikeEl
1 / 1 / 0
Регистрация: 27.03.2012
Сообщений: 52
31.05.2013, 11:06  [ТС]     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #5
Цитата Сообщение от Чиффа Посмотреть сообщение
Вместо _TCHAR* поставьте просто char.
и функцию _tmain на main замените.
а не могли бы Вы вообще весь код прокомментировать?
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
31.05.2013, 11:10     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #6
MikeEl, жирно не будет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2013, 11:16     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы
Еще ссылки по теме:

C++ не компилирует! (в матрице поменять местами последний столбец со столбцом, содержащим наибольшее по абсолютной величине элемент матрицы)
В матрице поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением C++
C++ В матрице поменять местами строку, содержащую наибольший элемент, со строкой, содержащей наименьший

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

Или воспользуйтесь поиском по форуму:
MikeEl
1 / 1 / 0
Регистрация: 27.03.2012
Сообщений: 52
31.05.2013, 11:16  [ТС]     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы #7
Цитата Сообщение от Чиффа Посмотреть сообщение
Вместо _TCHAR* поставьте просто char.
и функцию _tmain на main замените.
и еще:
некорректно меняет местами
http://www.imageup.ru/img232/thumb/b...yjj1349370.jpg
Yandex
Объявления
31.05.2013, 11:16     В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы
Ответ Создать тему
Опции темы

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