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

Сумма строк и столбцов матрицы - C++

Восстановить пароль Регистрация
 
Payne
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 20
05.11.2012, 00:32     Сумма строк и столбцов матрицы #1
Всем привет, посоветуйте пожалуйста что не так делаю, есть двумерный динамический массив-матрица, нужно записать в диагональ матрицы суму соответствующих столбцов и строк, пример на картинке,но я не могу сделать так чтобы елементы а11, а22, а33 не повторялись
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.11.2012, 00:36     Сумма строк и столбцов матрицы #2
Цитата Сообщение от Payne Посмотреть сообщение
посоветуйте пожалуйста что не так делаю
для начала покажите код, в котором Вы делаете что-то не так.
Payne
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 20
05.11.2012, 00:46  [ТС]     Сумма строк и столбцов матрицы #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
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <locale.h>
using namespace std;
 
int main()
{   
    setlocale(0,"");
    int x,a=11,b=10,v=0;
    printf("Размер матрицы x ");
    scanf("%d",&x);
    int **pmas=new int*[x];
    int *bmas=new int [x];
    int **dmas=new int*[x];
    
    for(int i=0;i<x;i++)
    {
        pmas[i]=new int[x];
        dmas[i]=new int [x];
    }
    srand(time(NULL));
    while(a>b)
    {
        printf("\nВведите интервал генерирования a и b ");
        scanf("%d %d",&a,&b);
    }
 
    printf("\nИнтервал генерирования [%d,%d] \nМатрица = \t\tКоличество положительных чисел",a,b);
    for(int i=0;i<x;i++)
    {
        int t=0;
        printf("\n");
        for(int j=0;j<x;j++)
        {
            pmas[i][j]=rand() %(abs(b-a)+1)+a;
            dmas[i][j]=pmas[i][j];
            printf("%4d",pmas[i][j]);
            if (pmas[i][j]>0) t++;
        }
        bmas[i]=t;
        printf("%20d",bmas[i]);
    }
    printf("\n------------Новая матрица------------");
    for(int i=0;i<x;i++)
        {
            pmas[i][i]=0;
        }
    for(int i=0;i<x;i++)
    {
        
        for(int j=0;j<x;j++)
        {
            pmas[v][v]+=dmas[i][j];
        }
        for(int r=1;r<x;r++)
        {
            pmas[v][v]+=dmas[r][i];
        }
        
        v++;
    }
    
    for(int i=0;i<x;i++)
    {
        printf("\n");
        
        for(int j=0;j<x;j++)
        {
        printf("%4d",pmas[i][j]);   
        }
    }
    _getch();
    return 0;
}
Добавлено через 5 минут
Первый раз когда i=0 программа считает правильно а11+а12+а13+а21+а31 и записывает в а11
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.11.2012, 00:50     Сумма строк и столбцов матрицы #4
Один вопрос, на примере рисунка:
pmas[0][0] должно быть равно: pmas[0][1]+pmas[0][2]+pmas[1][0]+pmas[2][0] ?

Добавлено через 2 минуты
Цитата Сообщение от Payne Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int i=0;i<x;i++)
 {
for(int j=0;j<x;j++)
 {
 pmas[v][v]+=dmas[i][j];
 }
 for(int r=1;r<x;r++)
 {
 pmas[v][v]+=dmas[r][i];
 }
v++;
 }
замените на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    for(int i=0;i<x;i++)
    {
        
        for(int j=0;j<x;j++)
        {
            pmas[v][v]+=dmas[i][j];
        }
        for(int r=0;r<x;r++)
        {
            pmas[v][v]+=dmas[r][i];
        }
        pmas[v][v]-=dmas[i][i];        
        v++;
    }
Payne
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 20
05.11.2012, 01:00  [ТС]     Сумма строк и столбцов матрицы #5
почти еще нужно pmas[0][0]=pmas[0][0]+pmas[0][1]+pmas[0][2]+pmas[1][0]+pmas[2][0]
я создал еще такой же массив dmas для того что бы брать диагональные числа а11, а22, а33 а в pmas я присвоил таким же елементам( а11, а22, а33) значение 0...
и еще,у меня будет матрица другой розмерности, например 5х5, 3х3 это что б легче было

Добавлено через 2 минуты
все заменил, работает, спасибо большое!
Yandex
Объявления
05.11.2012, 01:00     Сумма строк и столбцов матрицы
Ответ Создать тему
Опции темы

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