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

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

Войти
Регистрация
Восстановить пароль
 
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
#1

Суммировать элементы столбца матрицы - C++

03.04.2014, 01:33. Просмотров 312. Ответов 6
Метки нет (Все метки)

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
#include <iostream>;
 
#include<locale>
using namespace std;
int mas1[255] [255],m,n,mas2[255],k,i,j,mas3[255],mas4[255],q,mas5[255],h;
int main() {
    setlocale(LC_ALL,"Rus");
    cin>>m;
    cout<<endl;
    cin>>n;
    cout<<endl;
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
 
            cin>>mas1[i][j];//ввод матрицы
        }
    }
    cout<<endl;
    
        for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            cout<<mas1[i][j]<<" ";
        }
        cout << endl;
    }
        //////////////////////////////////
    for(int j=0;j<100;j++)                   //создание матриц размером 2*1 и их матричное произведение
    {
        mas2[j]=0;
 
        for(int i=0;i<100;i++)
        {
            if(mas1[i][j])
            
            mas2[j]=mas2[j]+ mas1[i][j];
            
 
                
 
        }
    }
    
        
    
    for(int j=0;j<20;j++)
        cout<<mas2[j]<<".";
    cout<<endl;
    
        for(int j=0;j<n;j++)
        {
        mas3[k]=mas1[0][j];
            k++;
        }
    
    for(int k=0;k!=n;k++)
        cout<<mas3[k]<<".";
    cout<<endl;
    for(int j=0;j<n;j++)
        {
        mas4[q]=mas1[1][j];
            q++;
        }
    cout<<endl;
    for(int q=0;q!=n;q++)
        cout<<mas4[q]<<".";
    cout<<endl;
    
    for(int k=0;k<n;k++)
    {
        for(int q=0;q<n-1-k;q++)
        {
            
            mas5[h]=mas3[k]+mas4[q+1+k];
            h++;
        }
    }
    for(int h=0;h!=20;h++)
        cout<<mas5[h]<<".";
    system ("pause");
    return 0;
}
суть программы: ввожу матрицу размером доаусти 2*7(количество строк всегда будет 2 по заданию)
матрица 45 44 38 35 12 -4 -6
53 51 19 8 0 0 0
Потом программа сначала сумирует елементы столбцов....затем я каждую строку записываю в массив отдельный.....и начинаю сумировать каждый елемент одного массив с елементами другого массива....
мне нужна помощь в том ,что программа должна ничего не делать если есть дествие с нулем тоесть программа должна работать если елемент не равен нулю. Куда вставить это условие??????????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2014, 01:33     Суммировать элементы столбца матрицы
Посмотрите здесь:

Упорядочить по возрастанию элементы каждого столбца матрицы C++
C++ На главной диагонали новой матрицы разместить элементы заданного столбца исходной матрицы
Сформировать B, элементы которого Bj равны 1, если хотя бы один элемент j-го столбца матрицы A больше суммы элементов этого столбца... C++
Суммировать наибольшие элементы столбцов матрицы C++
C++ Упорядочить по возрастанию элементы каждого столбца матрицы
C++ Элементы матрицы умножить на скаляр C=5,2. Элементы третьего столбца заменить единицами
C++ Разделить элементы каждого столбца заданной матрицы на последний элемент столбца
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
03.04.2014, 03:06  [ТС]     Суммировать элементы столбца матрицы #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
#include <iostream>;
 
#include<locale>
using namespace std;
int mas1[255] [255],m,n,mas2[255],k,i,j,mas3[255],mas4[255],q,mas5[255],h,mas6[255],z;
int main() {
    setlocale(LC_ALL,"Rus");
    cin>>m;
    cout<<endl;
    cin>>n;
    cout<<endl;
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
 
            cin>>mas1[i][j];//ввод матрицы
        }
    }
    cout<<endl;
    
        for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            cout<<mas1[i][j]<<" ";
        }
        cout << endl;
    }
        //////////////////////////////////
    for(int j=0;j<100;j++)                   //создание матриц размером 2*1 и их матричное произведение
    {
        mas2[j]=0;
        
        for(int i=0;i<100;i++)
        {
            
            if(mas1[i][j]!=0)
            
            mas2[j]=mas2[j]+ mas1[i][j];
            
            else if (mas1[i][j]=0)
                                           mas2[j]=0;
            
        }
        
        
    
    }
    
        
    
    for(int j=0;j<n;j++)
                 cout<<mas2[j]<<".";
    cout<<endl;
что здесь не верно в else???
суть проги такая что прибавляет елементы столбиков если елементы не равны 0
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
03.04.2014, 03:14     Суммировать элементы столбца матрицы #3
вообще как-то всё у тебя очень запутанно написано...
если хочешь, чтобы действие выполнялось только тогда, когда какой-либо элемент не равен нулю, то необходимо условие:

C++
1
2
3
4
5
if (mass[i][j] != 0){
оператор 1;
оператор 2;
...
}
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
03.04.2014, 03:22     Суммировать элементы столбца матрицы #4
C++
1
2
else if (mass1[i][j] == 0)
    mass2[j] = 0;
надо ставить два знака равно (оператор сравнивания - равенство), у тебя же происходит присваивание
а вообще, ты можешь написать попроще:
C++
1
2
else
    mass2[j] = 0;
поскольку в первом условии у тебя происходит работа со всем, что не равно нулю, а в противном случае только нуль и остается
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
03.04.2014, 03:29  [ТС]     Суммировать элементы столбца матрицы #5
все равно не то....выводит все нули(
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
03.04.2014, 03:37     Суммировать элементы столбца матрицы #6
значит ошибка где-то в другом месте, скорее всего ты что-то напутал в цикле с переменными i, j, либо что-то в этом роде
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 08:28     Суммировать элементы столбца матрицы
Еще ссылки по теме:

C++ Перемножить попарно элементы строки, в которой расположен максимум матрицы, на элементы столбца
Вывести элементы K-го столбца данной матрицы C++
Обнулить элементы заданного столбца матрицы C++
Упорядочить по возрастанию элементы каждого столбца матрицы C++
В заданной матрице суммировать элементы указанного столбца согласно условию C++

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

Или воспользуйтесь поиском по форуму:
S_el
2088 / 1595 / 305
Регистрация: 15.12.2013
Сообщений: 6,377
03.04.2014, 08:28     Суммировать элементы столбца матрицы #7
shukaka, приведите пример правильной работы программы.
Yandex
Объявления
03.04.2014, 08:28     Суммировать элементы столбца матрицы
Ответ Создать тему
Опции темы

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