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

Дружественные функции, не правильно считается сумма элементов массива и матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ девятиразрядная схема контроля чётности http://www.cyberforum.ru/cpp-beginners/thread1028428.html
написать программу девятиразрядная схема контроля чётности
C++ Найти сумму массива! Сумму элементов массива, расположенных между первым элементом и элементом равным нулю. Ели нуля нет, вывести сумму всех элементов. http://www.cyberforum.ru/cpp-beginners/thread1028424.html
Даны целые числа a1, a2, ., an C++
Даны целые числа a1, a2, ..., an, среди которых могут быть повторяющиеся. Составить новый массив из чисел, которые входят в последовательность по одному разу. У меня есть начало, теперь нужно закончить и составить массив в котором будет выполняться условие " Новый массив из чисел, которые входят в последовательность по одному разу." Помогите, а то уже запарился) #include <StdAfx.h> #include...
База данных C++
База данных должна содержать: Сведения о поступлении материалов на склад (включая дату поступления, номер документа, сведения о поставщике, количество материала, сумму); Сведения о материалах (название, вид материала, цена); Сведения о списании материалов (дата списания, номер документа, количество, сумма); Программа должна обеспечить ввода и редактирования данных. Формировать отчет о наличии...
C++ Узнать номер командной строки на которой находится "каретка" http://www.cyberforum.ru/cpp-beginners/thread1028394.html
Есть ли такая функция в недрах стандартных библиотек, чтобы узнать номер консольной строки, на которой в данный момент находится "каретка" от начала выполнения программы, или самому придётся писать? :)
C++ Запонениение динамиеской матрицы #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <stdio.h> #include <string.h> int main() { int povtor1=1,povtor2=1,x = 0, y = 0, *matr, chisloY = 0, chislomaxY = 0, chisloX = 0, chislomaxX = 0, i = 0, j = 0, m = 0, chislo = 0, dlina, schet1 = 0, schet2 = 0, max1 = 1, max2 = 2; scanf("%d", &dlina); int *massiv = new int; подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.12.2013, 00:36     Дружественные функции, не правильно считается сумма элементов массива и матрицы
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h> 
#include <stdio.h> 
using namespace std;
 
class array;
 
class matrix
{
int n, m;
int **a;
public:
    matrix();
    matrix(const matrix&);
    ~matrix();
    
    friend void func (array,matrix);
    friend void get(array,matrix);
};
 
class array
{
int *a;
int n;
public:
    array();
    array(const array&);
    ~array();
    
    friend void func (array, matrix);
    friend void get(array, matrix);
};
 
matrix::matrix()
{
    int i,j;
    cout<<"\n введите n , m : ";
    cin >> n >> m;
    a = new int* [n];
    for(i=0;i<n;i++)
        a[i] =  new int [m];
    
    for(i=0;i<n;i++)
       for (j=0;j<m;j++)
         a[i][j]=(rand()%100);
}
 
matrix::matrix(const matrix& mat)
{
    n = mat.n;
    m = mat.m;
    a = new int* [n];
    for(int i=0;i<n;i++)
        a[i] =  new int [m];
    
    for(int i=0;i<n;i++)
       for (int j=0;j<m;j++)
         a[i][j]=mat.a[i][j];
}
 
array::array()
{
    cout<<"\n введите n ";
    cin>>n; 
    a=new int[n]; 
      for(int i=0;i<n;i++)
          a[i]=(rand()%100);
}
 
array::array(const array& arr)
{
    n = arr.n;
    a=new int[n]; 
      for(int i=0;i<n;i++)
          a[i]= arr.a[i];
}
 
 
 
void get(array a , matrix b )
{
    int i,j;
    for(i=0;i<a.n;i++)
        cout<<a.a[i]<<"  ";
    cout<<"\n\n";
    for(i=0;i<b.n;i++)
    {
          cout<<endl;
          for (j=0;j<b.m;j++)
          {
              cout.width(3);
              cout<<b.a[i][j]<<"  ";
          }
    }
}
 
 
void func (array a , matrix b )
{
    int i,j;
    int sum1=0,sum2=0;
    for (i=0;i<a.n;i++)
        sum1+=a.a[i];
    for (i=0;i<b.n;i++)
        for (j=0;j<b.m;j++)
            sum2+=b.a[i][j];
    
    cout<<"\nСумма элементов массива "<<sum1<<endl;
    cout<<"Сумма элементов матрицы "<<sum2<<endl;
}
 
matrix::~matrix()
{
    for(int i=0;i<n;i++)
        delete a[i];
    delete [] a;
}
 
array::~array()
{
    delete [] a;
}
 
int main()
{
    setlocale(0,"");
    
    array a;
    matrix b;
    
    get(a,b);
    func(a,b);
 
    getch();
}
 
Текущее время: 00:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru