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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
DartRevan
Сообщений: n/a
11.06.2009, 18:51     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #1
Помогите разобрать в С++ нешарю: Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2009, 18:51     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали.
Посмотрите здесь:

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
Определить минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали C++
Определить минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ёрик
45 / 45 / 2
Регистрация: 07.01.2009
Сообщений: 298
11.06.2009, 19:23     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <stdio.h> 
#include <math.h>
#include <time.h>
#include <stdlib.h>
 
#define N 8
 
void print_array(int arr[][N], int n)
{
int i = 0;
int j = 0;
 
for( i = 0; i < n; i++)
{
for( j = 0; j < n; j++)
printf("%d\t",arr[i][j]);
puts("\n");
}
}
 
 
void getSUM(int arr[][N], int n)
{
int i = 0;
int j = 0;
int has_negatives = 0; // Есть ли отрицательные элементы в текущем столбце 
long sum = 0;
 
for ( j = 0; j < n; j++ )
{
sum = 0;
has_negatives = 0;
for( i = 0; i < n; i++)
{
if ( arr[i][j] < 0 )
{
has_negatives = 1;
break;
}
else 
{
sum += arr[i][j];
}
}
 
// Выводим сумму только тех столбцов, в которых нет отрицательных элементов
if ( !has_negatives ) 
{
printf("\n");
printf("Sum of column %d = %d\t", j, sum);
}
}
}
 
void getMAX_among_diagonals(int arr[][N], int n)
{
int i = 0;
int j = 0;
int k = 0;
long currsum = 0;
long maxsum = 0;
 
puts("Processing diagonals:");
 
// Пробегаем левую верхнюю часть матрицы
for ( i = 0; i < n - 1; i++)
{
long currsum = 0;
for ( j = i, k = 0; (j >= 0) && (k <= i); j--, k++)
{
printf("[%d;%d]\t", j, k);
currsum += abs(arr[j][k]);
}
 
if (currsum > maxsum)
maxsum = currsum;
 
printf("Sum = %ld\n", currsum);
}
 
// Пробегаем правую нижнюю часть матрицы
for ( i = n - 1; i >= 1; i--)
{
long currsum = 0;
for ( j = i, k = n - 1; (j <= n - 1) && (k >= i); j++, k--)
{
printf("[%d;%d]\t", j, k);
currsum += abs(arr[j][k]);
}
 
if (currsum > maxsum)
maxsum = currsum;
 
printf("Sum = %ld\n", currsum);
}
 
printf("Max sum of absolute values in diagonals = %ld\n", maxsum);
}
 
void rand_array(int arr[][N], int n)
{
int i = 0;
int j = 0;
 
srand(time(0));
rand();
 
for ( i = 0; i < n; i++ )
for ( j = 0; j < n; j++ )
arr[i][j] = rand() % 30 - 3;
} 
 
int main() 
{ 
    int i;
    int **a = (int **)calloc(N,sizeof(int*));
    for (i = 0; i < N; i++)
        a[i] = (int*)calloc(N,sizeof(int));
 
rand_array(a, N);
 
print_array(a, N);
 
getSUM(a, N);
 
getMAX_among_diagonals(a, N);
 
for (i = 0; i < N; i++)
        free(a[i]);
 
free(a);
**a = NULL;
 
 
 
return 0;
}
Search..
Заказ софта
 Аватар для Search..
338 / 183 / 10
Регистрация: 26.05.2009
Сообщений: 863
11.06.2009, 19:50     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #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
#include <stdio.h>
 
int main(int argc, char * argv [])
{
    const int N = 5;
    int mass[N][N], result[N];
    for(int s = 0; s < N; s++) { result[s] = 0;
        for(int st = 0; st < N; st++) {
            printf("Mas[%d][%d]: ", s + 1, st + 1);
            if(scanf_s("%d", & mass[s][st]) != 1) {
                fprintf(stderr, "Error! (Scanf)\n");
                return -1;
            }/* Если не MS Visual Studio, то scanf */
        }
    }
    printf("------------------------\n");
    for(int i = 0; i < N; i++) {
        for(int j = 0; j < N; j++) {
            result[i] += mass[i][j];
        }
    }
 
    int min = result[0];
    for(int smr = 1; smr < N; smr++) {
        if(result[smr] < min) {
            min = result[smr];
        }
    }
    printf("Min: %d\n", min);
 
    return 0;
}
SergProgC++
Эксперт GPSS
 Аватар для SergProgC++
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,316
16.01.2011, 18:49     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #4
Не работает ваш код, кто нибудь напишите то что действительно работает
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
16.01.2011, 18:52     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #5
Цитата Сообщение от SergProgC++ Посмотреть сообщение
Не работает ваш код, кто нибудь напишите то что действительно работае
У меня работает, какие у Вас ошибки выдает?
SergProgC++
Эксперт GPSS
 Аватар для SergProgC++
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,316
16.01.2011, 19:10     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #6
Цитата Сообщение от apachan Посмотреть сообщение
У меня работает, какие у Вас ошибки выдает?
смысл не в том что ошибки а считает не верно

Добавлено через 6 минут
на матрицу
6 1 0
2 8 1
4 9 2
выдает ответ 7
а правильно же будет 2

Добавлено через 1 минуту
и где тут модуль обсчитываеться не понятно
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
16.01.2011, 19:13     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #7
Юзайте поиск по форуму, такую задачу уже раз дцать решили...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 19:21     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали.
Еще ссылки по теме:

Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
C++ Найти минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы[массив]
C++ Для заданной матрицы найти максимум среди сумм элементов диагоналей, параллельных главной диагонали

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

Или воспользуйтесь поиском по форуму:
SergProgC++
Эксперт GPSS
 Аватар для SergProgC++
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,316
16.01.2011, 19:21     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. #8
а ссылочкой не поделетесь???
Yandex
Объявления
16.01.2011, 19:21     Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали.
Ответ Создать тему
Опции темы

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