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

Двумерный массив. Где ошибка? - C++

Восстановить пароль Регистрация
 
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.06.2014, 01:36     Двумерный массив. Где ошибка? #1
Дана действительная квадратная матрица порядка N (N – нечетное), заполненная случайными числами, все элементы различны.
Найти наибольший элемент среди стоящих на главной диагонали и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

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
# include <iostream>
using namespace std;
int main ()
{
    const int r=5,/*строки*/ c=5;//элементов в одной строке (столбцы)
    int mas [r] [c]={};
    int max=0;
    for (int i=0; i<r; i++)
    {
        for (int j=0; j<c; j++)
        {
            mas [i] [j] = rand()%100;
            cout<<mas[i][j]<<'\t';
        }
        cout<<endl;
    }
    for (int i=0; i<r; i++)
    {
        for (int j=0; j<c; j++)
        {
            if (i=j)
                max=mas[i][j];
            if (mas[i][j]>max)
                max=mas[i][j];
}
        cout<<max<<endl;
    }
    int a;
    for (int i=0; i<r; i++)//переход между строками
    {
        for (int j=0; j<c; j++)//перебор элементов одной строки
        {
            if (((i=j)/2)==((i+j-1)/2))
                a = mas [i] [j];
    }
        int x;
    for (int i=0; i<r; i++)//переход между строками
    {
        for (int j=0; j<c; j++)//перебор элементов одной строки
        {
            if (((i=j)/2)==((i+j-1)/2))
                mas[i][j]=max;
            if (mas[i][j]=max)
                mas[i][j]=a;
                        cout<<mas[i][j]<<'\t';
 
    }
        cout<<endl;
 
}
}
            
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Елена Едыгарова
 Аватар для Елена Едыгарова
34 / 20 / 9
Регистрация: 24.01.2014
Сообщений: 80
23.06.2014, 01:58     Двумерный массив. Где ошибка? #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
# include <iostream>
using namespace std;
int main ()
{
    const int r=5;int max=0;
    int mas [r][r]={};
    
    for (int i=0; i<r; i++)
    {
        for (int j=0; j<r; j++)
        {
            mas [i] [j] = rand()%100;
            cout<<mas[i][j]<<'\t';
        }
        cout<<endl;
    }
    
    int x;
    for (int i=0; i<r; i++)
       if(max<mas[i][i])
       {
           max=mas[i][i];
           x=i;
       }
 
        cout<<"\nMax="<<max<<endl;
        
        mas[x][x]=mas[r/2][r/2];
        mas[r/2][r/2]=max;
 
        cout<<endl;
        for (int i=0; i<r; i++)
        {
            for (int j=0; j<r; j++)
                 cout<<mas[i][j]<<'\t';
            cout<<endl;
        }
 
   return 0;      
 }
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.06.2014, 02:28  [ТС]     Двумерный массив. Где ошибка? #3
все хорошо, но Найти наибольший элемент среди стоящих на главной диагонали!!!!
Елена Едыгарова
 Аватар для Елена Едыгарова
34 / 20 / 9
Регистрация: 24.01.2014
Сообщений: 80
23.06.2014, 09:43     Двумерный массив. Где ошибка? #4
Элементы главной диагонали имеют равные индексы.
C++
1
2
3
4
5
6
for (int i=0; i<r; i++)
       if(max<mas[i][i])
       {
           max=mas[i][i];
           x=i;
       }
Мне казалось, что это поиск наибольшего элемента среди стоящих на главной диагонали, разве нет?
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.06.2014, 19:29  [ТС]     Двумерный массив. Где ошибка? #5
Спасибо разобрался!
Yandex
Объявления
23.06.2014, 19:29     Двумерный массив. Где ошибка?
Ответ Создать тему
Опции темы

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