Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
1

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

03.04.2014, 01:33. Показов 969. Ответов 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
Потом программа сначала сумирует елементы столбцов....затем я каждую строку записываю в массив отдельный.....и начинаю сумировать каждый елемент одного массив с елементами другого массива....
мне нужна помощь в том ,что программа должна ничего не делать если есть дествие с нулем тоесть программа должна работать если елемент не равен нулю. Куда вставить это условие??????????
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2014, 01:33
Ответы с готовыми решениями:

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

Вывести определенные элементы матрицы и суммировать их
Дана матрица размером 5 на 5 с рандомными числами от 0 до 4 вывести из нее определенные элементы...

Суммировать наибольшие элементы столбцов матрицы
Помогите решить задачу : Дана матрица А(nxn). Получить x1xn+x2xn-1+…+xnx1, где xk – наибольшее...

Разделить элементы каждого столбца заданной матрицы на последний элемент столбца
Разделить элементы каждого столбца заданной матрицы на последний элемент столбца.

6
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
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
0
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
03.04.2014, 03:14 3
вообще как-то всё у тебя очень запутанно написано...
если хочешь, чтобы действие выполнялось только тогда, когда какой-либо элемент не равен нулю, то необходимо условие:

C++
1
2
3
4
5
if (mass[i][j] != 0){
оператор 1;
оператор 2;
...
}
0
12 / 12 / 7
Регистрация: 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;
поскольку в первом условии у тебя происходит работа со всем, что не равно нулю, а в противном случае только нуль и остается
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
03.04.2014, 03:29  [ТС] 5
все равно не то....выводит все нули(
0
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
03.04.2014, 03:37 6
значит ошибка где-то в другом месте, скорее всего ты что-то напутал в цикле с переменными i, j, либо что-то в этом роде
0
2417 / 1817 / 400
Регистрация: 15.12.2013
Сообщений: 7,894
03.04.2014, 08:28 7
shukaka, приведите пример правильной работы программы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2014, 08:28

Массив: Разделить элементы каждого столбца заданной матрицы на последний элемент столбца.
Разделить элементы каждого столбца заданной матрицы на последний элемент столбца. Полученную...

Сформировать B, элементы которого Bj равны 1, если хотя бы один элемент j-го столбца матрицы A больше суммы элементов этого столбца...
Помогите написать задачу. &quot;Сформировать одномерный массив B, элементы которого Bj равны 1, если...

Элементы матрицы умножить на скаляр C=5,2. Элементы третьего столбца заменить единицами
Не могу понять как вычислить матрицу, подскажите пожалуйста=) Данная матрица А (4,5), элементы...

Перемножить попарно элементы строки, в которой расположен максимум матрицы, на элементы столбца
В данной матрице найти наибольший элемент и перемножить попарно элементы строки , в которой он...


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

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

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