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

Максимальный элемент на побочной диагонали - C++

Восстановить пароль Регистрация
 
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
25.11.2012, 04:09     Максимальный элемент на побочной диагонали #1
Помогите кто-нибудь написать программу на C++
Дан двухмерный квадратный массив.Найти максимальный элемент на побочной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 04:09     Максимальный элемент на побочной диагонали
Посмотрите здесь:

Найти максимальный элемент для каждой диагонали матрицы, параллельной побочной C++
Поменять местами максимальный элемент главной диагонали и элемент, лежащий на пересечении главной и побочной диагоналей C++
C++ Динамически распределение памяти. Матрицы. Найти максимальный ниже побочной диагонали, и минимальный главной диагонали
Поменять местами минимальный элемент главной диагонали и максимальный элемент побочной диагонали в матрице C++
C++ Найти максимальный элемент матрицы расположенный выше побочной диагонали и его местоположение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
owned
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76
25.11.2012, 04:18     Максимальный элемент на побочной диагонали #2
Grind, Думаю догадаешься, что убрать и как вычислить сумму на побочной диагонали.

Вот:

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
//Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 20. Определить сумму элементов, расположенных на главной диагонали, а также сумму элементов, расположенных на побочной диагонали.
 
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
    setlocale(0,"");
    srand(time(0));
    const int size = 5 ;
    int a [size][size];
 
    for (int i = 0; i<size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            a[i][j] = rand() % 21;
            cout<< a[i][j]<<"\t";
        }
        cout<<endl;
    }
    
    int sum_1 = 0 ,sum_2 = 0;
 
    for(int i = 0; i < size; i++ )
    {
        for(int j = 0; j < size; j++)
        {
            if(i == j)
                sum_1 += a[i][j];
            else if(j == size - i - 1)
                sum_2 += a[i][j];
 
        
        }
 
    }
 
    for(int i = 0; i < size; i++ )
    {
        for(int j = 0; j < size; j++)
        {
            if(i == j || j == size - i - 1)
                cout<<a[i][j];
            else
                cout<<"_";
                cout<<"\t";
        }
        cout<<endl;
    }
 
    cout<<"Основная диагональ"<<sum_1<<endl;
    cout<<"Побочная диагональ"<<sum_2<<endl;
}
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
25.11.2012, 04:23  [ТС]     Максимальный элемент на побочной диагонали #3
при запуске выдает 2 ошибки,по-ходу что-то связанное с тем,что у мя Visual C++ 6.0
d:\for teach\c++\tr\tr.cpp(23) : error C2374: 'i' : redefinition; multiple initialization
d:\for teach\c++\tr\tr.cpp(11) : see declaration of 'i'
d:\for teach\c++\tr\tr.cpp(37) : error C2374: 'i' : redefinition; multiple initialization
d:\for teach\c++\tr\tr.cpp(11) : see declaration of 'i'
owned
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76
25.11.2012, 04:35     Максимальный элемент на побочной диагонали #4
ну вот тогда тебе в помощь поиск макс элемента:

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
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
    setlocale(0,"");
    srand(time(0));
    const int rows = 3, cols = 4 ;
    int a [rows][cols];
 
    for (int i = 0; i<rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            a[i][j] = rand() % 10;
            cout<< a[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
 
    int sum = 0, min, max;
    min = max = a[0][0];
 
    for(int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++ )
        {
            sum += a[i][j];
 
            if(a[i][j] < min)
                min = a[i][j];
            else if(a[i][j] > max)
                max = a[i][j];
        }
    
    }
 
    cout<<"Сумма "<<sum<<endl;
    cout<<"Макс "<<max<<endl;
    cout<<"Мин "<<min <<endl;
 
}
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
25.11.2012, 16:20  [ТС]     Максимальный элемент на побочной диагонали #5
спасибо...

Добавлено через 2 часа 13 минут
вот так находится макс и мин по главной,
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
#include <iostream.h>
#include <math.h>
#include<stdlib.h>
#include <time.h>
void main()
{
    srand(time(0));
    const int n=3 ;
    int i,j,a [n][n];
 
    for ( i = 0; i<n; i++)
    {
        for ( j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10;
            cout<< a[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
 
    int sum = 0, min, max;
    min = max = a[0][0];
 
    for( i = 0; i < n; i++)
    {
        for ( j = 0; j < n; j++ )
        {
            sum += a[i][j];
 
            if(a[i][j] < min && i==j )
                min = a[i][j];
            else if(a[i][j] > max && i==j)
                max = a[i][j];
        }
    
    }
 
    cout<<"summ "<<sum<<endl;
    cout<<"max "<<max<<endl;
    cout<<"min "<<min <<endl;
 
}
а мне бы на побочной,хотя ток максимальный надо

Добавлено через 9 часов 25 минут
Спасибо,что подтолкнул,вот рабочая версия кому надо
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
#include <iostream.h>
#include <math.h>
#include<stdlib.h>
#include <time.h>
void main()
{
    srand(time(0));
    const int n=5 ;
    int i,j,a [n][n];;
    for ( i =0; i<n; i++)
    {
        for ( j =0; j < n; j++)
        {
            a[i][j] = rand() % 10;
            cout<< a[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
 
    int sum = 0,max;
    max = a[0][0];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(a[i][j] > max )
                max = a[i][n-i-1];
        }
    }
    cout<<"max "<<max<<endl;
}
Yandex
Объявления
25.11.2012, 16:20     Максимальный элемент на побочной диагонали
Ответ Создать тему
Опции темы

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