Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
RRRay
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 2
#1

В матрице найти максимум среди сумм элементов диагоналей, параллельных главной диагонали

13.05.2017, 19:50. Просмотров 237. Ответов 1
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста, вот задачка:
1) Найти максимальную сумму среди сумм элементов диагоналей, параллельных главной диагонали
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
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    const short n(5), m(8);
    int mas[n][n] = {{0, 1, 2, 3, 4},
                     {1, 2, 3, 4, 5},
                     {2, 3, 4, 5, 6},
                     {3, 4, 5, 6, 7},
                     {4, 5, 6, 7, 8}};
 
    short i, j, k;
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < n; ++j, std::cout<<' ')
            std::cout<<mas[i][j];
 
    int sum[m] = {0, 0, 0, 0, 0, 0, 0, 0};
 
    int max(INT_MIN);
 
    for(k = 0; k < n - 1; ++k)
        for(i = 0; i < k + 1; ++i)
                sum[k] += mas[i][i];
 
    for(k = m / 2; k < m; ++k)
        for(i = k - m/2 + 1; i < n; ++i)
            sum[k] += mas[i][i];
 
    std::cout<<"\nСуммы элементов диагоналей, параллельных побочной:\n";
    for(i = 0; i < m; ++i)
        std::cout<<sum[i]<<' ';
 
    for(i = 0; i < m; ++i)
        if(sum[i] > max)
            max = sum[i];
    std::cout<<"\n\nМаксимальная сумма:\n"<<max<<std::endl;
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2017, 19:50
Ответы с готовыми решениями:

В заданной матрице найти максимум среди сумм элементов диагоналей, параллельных главной диагонали
Данная прямоугольная целочисленная матрица. определить: 1)Произведение элементов в тех строках,...

Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Задана целочисленная квадратная матрица A(N x N). Найти максимум среди сумм элементов диагоналей,...

Для заданной матрицы найти максимум среди сумм элементов диагоналей, параллельных главной диагонали
Для заданной целочисленной матрицы найти максимум среди сумм элементов диагоналей, параллельных...

Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
надо короче чтоб прога искала максимум среди сумм элементов диагоналей, параллельных главной...

Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Дана целочисленная квадратная матрица. Определить: 1) произведения элементов в тех строках,...

1
marat_miaki
149 / 138 / 87
Регистрация: 08.04.2013
Сообщений: 557
14.05.2017, 07:14 #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
// Программа находит сумму каждой побочной диагонали в квадратной матрице
#include <iostream>
#include<iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int main(int argc, char** argv)
{
  setlocale(LC_ALL, "Rus");
int N;
cout << "Введите размер массива -> ";
cin>>N;
int msum[N-1];
int **a=new int* [N];
for (int i = 0; i < N; i++) {
a[i] = new int [N];
}
srand(time(0));
cout<< "Исходный массив" <<endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
a[i][j] = (rand() % 20);
cout << setw(4) << a[i][j] ;
}
cout << endl;
}
cout << endl;
//=========================================================//
int sum,k,v=0;
for (int i = 0; i < N *2-1; ++i) {
 sum = 0;
 k = i;
 if (i >=  N) { k = N-1; ++v;};
 
for (int j = k; j > v-1 ; --j) {
sum+=a[k+v-j][j];
}
cout <<"Сумма "<< i <<" диагонали -> "<< sum << endl;
msum[k+v]=sum;
}
//-------------------------------------------------------//
    std::cout<<"\nСуммы элементов диагоналей, параллельных побочной:\n";
    for(int i = 0; i < N*2-1; ++i)
        std::cout<<msum[i]<<' ';
 
     int min =msum[0];
    for(int i = 0; i < N*2-1; ++i)
        if(msum[i] < min)
            min = msum[i];
    std::cout<<"\n\nМинимальная сумма:\n"<<min<<std::endl;
 
 
for (int i = 0; i < N; i++) {
delete []a[i];
}
delete[] a;
system ("PAUSE");
return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2017, 07:14

Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Народ!!! Скиньте кто-нибудь код, завтра сдавать уже!!!

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

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


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

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

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