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

Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов - C++

Восстановить пароль Регистрация
 
PtahaOne
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 33
16.01.2012, 19:42     Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов #1
Добрый вечер всем.
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
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
        const int m=4;
        const int n=4;
        int i,j;
        int sum,k=0,min=0;
        int Matrix[n][m];
 
        
        for(i = 0;i < n;++i)
        {
                for(int j = 0;j < m;++j)
                {
                        Matrix[i][j] = rand()%9-5;
                        cout<<Matrix[i][j]<<' ';
                }
                cout<<endl;
        }
        cout<<endl;
 
        for (i=n; i>0; i--)
        {
                sum = 0;
                for (j=0; j<m-i+1; j++)
                        sum += Matrix[n-i-j][j];
                k++;
                cout<<"sum "<<k<<" = "<<sum<<endl;
 
                if(sum < min || min == 0)
                        min=sum;
        }
 
        for (i=1; i<n; i++)
        {
                sum = 0;
                for (j=n-1; j>=i; j--)
                        sum += Matrix[n-1+i-j][j];
                k++;
                cout<<"sum "<<k<<" = "<<sum<<endl;
 
                if(sum < min || min == 0)
                        min=sum;
        }
 
        cout<<"\nMinimum = "<<min<<endl;
        for(j=0;j<n;j++)
    { int sum=0;
        for(int i=0;i<n;i++)
            {
                sum+=Matrix[i][j];
                if(Matrix[i][j]<0);
            }
        
            {
                cout<<"Summa "<<j+1<<" stolbca = "<<sum<<endl;
            }
    }
        return 0;
}
Как сделать так чтобы программа не брала побочную диагональ?(препод сказал, что прямая не может быть сама себе параллельна...идиот)
Вот этот кусочек программы
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
for (i=n; i>0; i--)
        {
                sum = 0;
                for (j=0; j<m-i+1; j++)
                        sum += Matrix[n-i-j][j];
                k++;
                cout<<"sum "<<k<<" = "<<sum<<endl;
 
                if(sum < min || min == 0)
                        min=sum;
        }
 
        for (i=1; i<n; i++)
        {
                sum = 0;
                for (j=n-1; j>=i; j--)
                        sum += Matrix[n-1+i-j][j];
                k++;
                cout<<"sum "<<k<<" = "<<sum<<endl;
 
                if(sum < min || min == 0)
                        min=sum;
        }
 
        cout<<"\nMinimum = "<<min<<endl;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2012, 19:42     Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов
Посмотрите здесь:

Найти номер последнего из ее столбцов, содержащих равное количество положительных и отрицательных элементов C++
что у меня не правильно? (поменять знак элементов столбца, вывести сумму отрицательных элементов в столбце, действия для столбцов) C++
Найти разницу между средним арифметическим положительных и отрицательных элементов столбцов с нечётными номерами матрицы C++
Определить произведение элементов матрицы в строках не содержащих отрицательных элементов C++
C++ В квадратной целочисленной матрице найти сумму элементов в столбцах, не содержащих отрицательных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.01.2012, 20:04     Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов #2
Цитата Сообщение от PtahaOne Посмотреть сообщение
Как сделать так чтобы программа не брала побочную диагональ?
Формула побочной диагоняли - arr[i][size - i - 1]
Если вы об этом. Можно двумя циклами до и после побочной диагонали, тогда в каждом цикле не будет ненужной проверки.

Лучше задание скажите.
PtahaOne
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 33
16.01.2012, 20:15  [ТС]     Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов #3
Вот...
Миниатюры
Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов  
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.01.2012, 21:10     Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов #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
#include <iostream>
#include <limits>
#include <iomanip>
#include <algorithm>
 
int main()
{
    const int size = 5;
    const int arr[size][size] = { { 9,   2,  3,  4,  5 },
                                  { 6,   7,  8,  9,  0 },
                                  { -1, -2, -3, -4, -5 },
                                  { -6, -7, -8, -9,  0 },
                                  { 2,   4,  6,  8, 10 } };
    int min = std::numeric_limits<int>::max();
    for(int i = 0; i < size; ++i)
    {
        for(int j = 0; j < size; ++j)
            std::cout << std::setw(4) << arr[i][j];
        std::cout << std::endl;
    }
    for(int i = 0; i < size - 1; ++i)
    {
        int sum = 0;
        for(int rw = 0, cl = i; cl >= 0; ++rw, --cl)
            sum += std::abs(arr[rw][cl]);
        if(sum < min)
            min = sum;
        sum = 0;
        for(int rw = size - i - 1, cl = size - 1; rw < size; ++rw, --cl)
            sum += std::abs(arr[rw][cl]);
        if(sum < min)
            min = sum;
    }
    std::cout << min << std::endl;
    return 0;
}
Yandex
Объявления
16.01.2012, 21:10     Найти сумму элементов столбцов матрицы, не содержащих отрицательных элементов
Ответ Создать тему
Опции темы

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