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

Найти сумму элементов в каждой строке матрицы W1 - C++

Восстановить пароль Регистрация
 
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
30.11.2010, 18:23     Найти сумму элементов в каждой строке матрицы W1 #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
#include <iostream.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    #include <conio.h>
    
    int main()
    {
    srand(time(0));
 
 
    double W1[10][10];
    int i,j;
    for( i=0;i<10;i++)
    {
    for(j=0;j<10;j++)
    { 
    W1[i][j]=(rand()%99)*(pow((-1),rand()));
 
    cout << W1[i][j]<<"\t"; 
    }
    cout << "\n";
    }
    cout << "\n\n";
    for( int m=0;m<10;m++)
    {
    double summa = 0;
    for(int n=0;n<10;n++)
 
    
    if(W1[m][n])    summa=summa+W1[m][n];
    cout << "\nV " << m+1 << " stroke summa elementov:" << summa;
    } 
    getch ();
    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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
 
{
 int i,j,k,m,n,temp;
 int** Array;
 int W1 [n][m]
 printf("Vvesti kolichestvo strok:\n ");
 scanf("%d", &n);
 printf("Vvesti kolichestvo stolbcov:\n ");
 scanf("%d", &m);
 Array=(int**)malloc(sizeof(int*)*n);
 for(i=0; i<n; ++i)
 Array[i]=(int*)malloc(sizeof(int)*m);
    for(i=0; i<n; ++i)
        {
            for(j=0; j<m; ++j)
                {
                 printf("Vvesti %d x %d element:\n", i+1, j+1);
                 scanf("%d", &Array[i][j]);
                }
        }
 printf("Nachal'naya matrica:\n");
    for(i=0; i<n; ++i)
        {
        for(j=0; j<m; ++j)
            {
               printf("%4d ", Array[i][j]);
                                           }
                   printf("\n");
                                             }
                        for(j=0;j<m;++j)
                        {
                            for(i=0;i<n;++i)
                            {
                                for(k=0;k<n;++k)
                                {
                                    if(Array[i][j]<Array[k][j])
                                    {temp=Array[i][j];Array[i][j]=Array[k][j];Array[k][j]=temp;}
                                }
                            }
                        }
               }
Помогите собрать всё это в кучу, и чтобы оно работало
Заранее большое спасибо!
Миниатюры
Найти сумму элементов в каждой строке матрицы W1  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 18:23     Найти сумму элементов в каждой строке матрицы W1
Посмотрите здесь:

Найти количество положительных элементов в каждой строке матрицы В C++
C++ Матрицы: найти количество, сумму и среднее арифметическое отрицательных элементов в каждой строке
в каждой строке заданной матрицы A(N,M) вычислить сумму, количество и среднее арифмитическое положитьных элементов. C++
В каждой строке матрицы найти количество нечетных элементов C++
C++ Дана Матрица А(5.4) 1)Найти одномерный массив В из сумм элементов каждой строки матрицы 2)найти максимальный элемент матрицы А в 5-ой строке 3)Заме
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
30.11.2010, 18:58     Найти сумму элементов в каждой строке матрицы W1 #2
Вы бы определились на каком языке надо писать? С или С++?
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
30.11.2010, 19:00  [ТС]     Найти сумму элементов в каждой строке матрицы W1 #3
на с++
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
30.11.2010, 19:08     Найти сумму элементов в каждой строке матрицы W1 #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
37
38
39
40
#include <iostream.h>
        #include <stdlib.h>
        #include <math.h>
        #include <time.h>
        #include <conio.h>
        
        int main()
        {
        srand(time(0));
 
 
        double **W1,summa; 
        int i,j,n,m;
        cin>>n>>m;
        W1=new double *[n];
       for (i=0;i<n;i++) a[i]=new double [m];
 
        for( i=0;i<n;i++)
        {
        for(j=0;j<m;j++)
        { 
        W1[i][j]=(rand()%99)*(pow((-1),rand()));
 
        cout << W1[i][j]<<"\t"; 
        }
        cout << "\n";
        }
        cout << "\n\n";
        for(i=0;i<n;i++)
        {
        double summa = 0;
        for(j=0;j<m;j++)
        if(W1[i][j])    summa=summa+W1[i][j];
        cout << "\nV " << i+1 << " stroke summa elementov:" << summa;
        } 
        for (i=0;i<n;i++) delete [] W1[i];
        delete [] W1;
        getch ();
        return 0;
        }
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.11.2010, 19:11     Найти сумму элементов в каждой строке матрицы W1 #5
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
#include <iostream>
 
int main()
{
        size_t rows = 0;
        size_t columns = 0;
 
        std::cout << "input rows: ";
        std::cin >> rows;
 
        std::cout << "input columns: ";
        std::cin >> columns;
 
        int **matrix = new int*[rows];
        for(size_t i = 0; i < rows; ++i)
                matrix[i] = new int[columns];
 
        for(size_t i = 0; i < rows; ++i) {
                for(size_t j = 0; j < columns; ++j) {
                        std::cin >> matrix[i][j];
                }
        }
 
        for(size_t i = 0; i < rows; ++i) {
                int sum = 0;
                for(size_t j = 0; j < columns; ++j)
                        sum += matrix[i][j];
 
                std::cout << sum << ' ';
        }
 
        std::cout << std::endl;
 
        for(size_t i = 0; i < rows; ++i)
                delete[] matrix[i];
        delete[] matrix;
 
        return 0;
}
Пример:
Код
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

15 20 25 30 35
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
30.11.2010, 19:11     Найти сумму элементов в каждой строке матрицы W1 #6
Tambel, после виделение памяти, ее надо очищать!!!!
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
30.11.2010, 19:15     Найти сумму элементов в каждой строке матрицы W1 #7
Цитата Сообщение от MILAN Посмотреть сообщение
Tambel, после виделение памяти, ее надо очищать!!!!
я знаю, я просто работал с кодом Valerko думал он и сам додумается))
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
30.11.2010, 19:21  [ТС]     Найти сумму элементов в каждой строке матрицы W1 #8
Цитата Сообщение от Tambel Посмотреть сообщение
C++
1
2
3
#include <iostream.h>
 
       for (i=0;i<n;i++) a[i]=new double [m];
здесь компилятор выдаёт ошибку:
invalid types 'int[int]' for array subscript
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
30.11.2010, 19:25     Найти сумму элементов в каждой строке матрицы W1 #9
Цитата Сообщение от Valerko Посмотреть сообщение
здесь компилятор выдаёт ошибку:
invalid types 'int[int]' for array subscript
ОЙЙЙ там не

C++
1
for (i=0;i<n;i++) a[i]=new double [m];
а
C++
1
for (i=0;i<n;i++) W1[i]=new double [m];
Пардон))
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
30.11.2010, 19:54  [ТС]     Найти сумму элементов в каждой строке матрицы W1 #10
Цитата Сообщение от fasked Посмотреть сообщение
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
#include <iostream>
 
int main()
{
        size_t rows = 0;
        size_t columns = 0;
 
        std::cout << "input rows: ";
        std::cin >> rows;
 
        std::cout << "input columns: ";
        std::cin >> columns;
 
        int **matrix = new int*[rows];
        for(size_t i = 0; i < rows; ++i)
                matrix[i] = new int[columns];
 
        for(size_t i = 0; i < rows; ++i) {
                for(size_t j = 0; j < columns; ++j) {
                        std::cin >> matrix[i][j];
                }
        }
 
        for(size_t i = 0; i < rows; ++i) {
                int sum = 0;
                for(size_t j = 0; j < columns; ++j)
                        sum += matrix[i][j];
 
                std::cout << sum << ' ';
        }
 
        std::cout << std::endl;
 
        for(size_t i = 0; i < rows; ++i)
                delete[] matrix[i];
        delete[] matrix;
 
        return 0;
}
Пример:
Код
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

15 20 25 30 35
спасибо конечно, но я хотел бы чтобы на основе моего творения мне это показали)))

Добавлено через 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
#include <iostream.h>
        #include <stdlib.h>
        #include <math.h>
        #include <time.h>
        #include <conio.h>
        
        int main()
        {
        srand(time(0));
 
 
        double **W1,summa; 
                int i,j,n,m;
                cin>>n>>m;
                W1=new double *[n];
        for (i=0;i<n;i++) W1[i]=new double [m];
 
 
        for( i=0;i<n;i++)
        {
        for(j=0;j<m;j++)
        { 
        W1[i][j]=(rand()%99)*(pow((-1),rand()));
 
        cout << W1[i][j]<<"\t"; 
        }
        cout << "\n";
        }
        cout << "\n\n";
        for(i=0;i<n;i++)
        {
        double summa = 0;
        for(j=0;j<m;j++)
        if(W1[i][j])    summa=summa+W1[i][j];
        cout << "\nV " << i+1 << " stroke summa elementov:" << summa;
        } 
        for (i=0;i<n;i++) delete [] W1[i];
        delete [] W1;
        getch ();
        return 0;
        }
а как здесь сделать чтобы выводилось:
Введите кол-во столбцов:
Введите кол-во строк:

а то у меня матрицу выводит, а сумму не считает, когда я пытаюсь что-то изменять

Добавлено через 4 минуты
всё, исправил))
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.11.2010, 19:56     Найти сумму элементов в каждой строке матрицы W1 #11
Цитата Сообщение от Valerko Посмотреть сообщение
спасибо конечно, но я хотел бы чтобы на основе моего творения мне это показали
ну это так, шаблонный пример, а Вы можете изменить его под свои потребности
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
30.11.2010, 19:56  [ТС]     Найти сумму элементов в каждой строке матрицы W1 #12
Tambel, и все остальные огромное спасибо за помощь!
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
01.12.2010, 23:10  [ТС]     Найти сумму элементов в каждой строке матрицы W1 #13
чуточку переделал, вот что получилось:
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
        #include <iostream.h>
        #include <stdlib.h>
        #include <math.h>
        #include <time.h>
        #include <conio.h>
        
        int main()
        {
        srand(time(0));
 
 
        double **W1,summa; 
                int i,j,n,m;
                cout << "Vvedite znachenie kol-va strok: ";
        cin >> n;
        cout << "Vvedite znachenie kol-va stolbcov: ";
        cin >> m;
                W1=new double *[n];
        for (i=0;i<n;i++) W1[i]=new double [m];
 
 
        for( i=0;i<n;i++)
        {
        for(j=0;j<m;j++)
        { 
        W1[i][j]=(rand()%99)*(pow((-1),rand()));
 
        cout << W1[i][j]<<"\t"; 
        }
        cout << "\n";
        }
        cout << "\n\n";
        for(i=0;i<n;i++)
        {
        double summa = 0;
        for(j=0;j<m;j++)
        if(W1[i][j])    summa=summa+W1[i][j];
        cout << "\nV " << i+1 << " stroke summa elementov:" << summa;
        } 
        for (i=0;i<n;i++) delete [] W1[i];
        delete [] W1;
        getch ();
        return 0;
        }
Добавлено через 3 минуты
Теперь может кто-то помочь с блок-схемой?
у меня есть некоторые зарисовочки, сейчас выложу...
Миниатюры
Найти сумму элементов в каждой строке матрицы W1  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2010, 14:20     Найти сумму элементов в каждой строке матрицы W1
Еще ссылки по теме:

Найти сумму положительных элементов матрицы в каждой строке C++
В матрице найти сумму элементов кратных m в каждой строке C++
C++ Найти сумму остатков от деление парных чисел на 5 в каждой строке матрицы

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

Или воспользуйтесь поиском по форуму:
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
02.12.2010, 14:20  [ТС]     Найти сумму элементов в каждой строке матрицы W1 #14
ну так что?
Yandex
Объявления
02.12.2010, 14:20     Найти сумму элементов в каждой строке матрицы W1
Ответ Создать тему
Опции темы

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