Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
DartRevan
#1

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

11.06.2009, 18:51. Просмотров 2570. Ответов 7
Метки нет (Все метки)

Помогите разобрать в С++ нешарю: Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2009, 18:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. (C++):

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. - C++
Помогите доделать задачу до конца, пожалуйста :-) Дана целочисленная квадратная матрица. Определить: — сумму элементов в тех...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Помогите написать код! Задача: Дана целочисленная квадратная матрица. Определить минимум среди сумм модулей элементов диагоналей,...

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

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Дана целочисленная квадратная матрица. Определить: 1.) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; ...

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

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

7
Ёрик
46 / 46 / 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;
}
1
Search..
Заказ софта
340 / 185 / 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;
}
1
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,363
16.01.2011, 18:49 #4
Не работает ваш код, кто нибудь напишите то что действительно работает
0
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
16.01.2011, 18:52 #5
Цитата Сообщение от SergProgC++ Посмотреть сообщение
Не работает ваш код, кто нибудь напишите то что действительно работае
У меня работает, какие у Вас ошибки выдает?
0
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,363
16.01.2011, 19:10 #6
Цитата Сообщение от apachan Посмотреть сообщение
У меня работает, какие у Вас ошибки выдает?
смысл не в том что ошибки а считает не верно

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

Добавлено через 1 минуту
и где тут модуль обсчитываеться не понятно
0
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
16.01.2011, 19:13 #7
Юзайте поиск по форуму, такую задачу уже раз дцать решили...
0
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,363
16.01.2011, 19:21 #8
а ссылочкой не поделетесь???
0
16.01.2011, 19:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 19:21
Привет! Вот еще темы с ответами:

Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Ребят, программа работает, проверьте только на чистоту кода, пожалуйста Дана целочисленная квадратная матрица. Определить: 1) сумму...

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

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

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


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

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

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