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

Не складывается сумма - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменение строки в цикле http://www.cyberforum.ru/cpp-beginners/thread450660.html
Как в цикле строке *char присваивать разные значения, например "коло1" при первом проходе, "коло2" при втором, и т.д. char * temp = new char for (int i = 0; i < 6; i++) { temp = ? //при первом проходе "kolo1" втором "kolo2" и т.д. } Как реализовать?
C++ Попадание точки в обалсть Дана точка на плоскости с координатами (x,y) составить программу,которая выдает одно из сообщений - Да,Нет,На границе-в зависимости от того, лежит ли точка внутри заштрихованной области ,вне или на границе x^2+y^2=10 y=-x (заштрихованная часть внутри окружности и над верхней диагональю) http://www.cyberforum.ru/cpp-beginners/thread450658.html
Подскажите в чом ошибка? C++
time5.h // объявление класса #indef TIME5_H #define TIME5_H class Time {public: Time(int=0, int=0, int=0); // конструктор по умолчанию // функции записи "set" 4 void setTime( int, int, int );
Числа на шахматной доске C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив размера N x N, значения элементов которого задать операцией присваивания. Остальные необходимые переменные делать локальными в функции main. 1. Найти сумму всех чисел на доске. Добавлено через 3 минуты Можно пожалуйста с подробными коментариями....
C++ Случайное число http://www.cyberforum.ru/cpp-beginners/thread450643.html
Вот мне надо случайные числа в диапазоне 1-4 пишу for (int j=0;j<10;j++){ srand(time(NULL)); int i = rand()%4+1; cout << i ; } Используйте теги форматирования кода!
C++ Задача с типами данных и поиском информации по базе Здравствуйте товарищи программисты. Мне нужно решить одну задачу, не хотелось бы ради этого погружаться во все тонкости с++ (хотя попытки были). Надеюсь на вашу помощь. Необходимо следующее: 1) Создать типы данных "Работник магазина" и "Работник склада", "Зарплата" и "Дата рождения". 2) Создать ряд переменных (в формате Фамилия Имя Отчество), которым будут присваиваться соответствующие... подробнее

Показать сообщение отдельно
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.02.2012, 02:27     Не складывается сумма
В классе матрицы присутствуют три матрицы. Две из них заполняются, потом вызывается
функция для их суммирования ну и печатается результат этой суммы.
Должно быть так:
В один объект типа матрицы представляет одну матрицу.
В классе могут быть функции заполнения этой матрицы,
ее печати ну и возможно арифметические операции.
Арифметические операции наверно лучше оформить в виде свободных функций.
Есть также утечка памяти и нереализованные конструктор копирования и оператор =
Вот более менее корректное решение

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
#include <iostream>
#include <cassert>
 
using namespace std;
 
class Matrix
{
  int** Matr;
  unsigned Width;
  unsigned Height;
 
  Matrix(const Matrix&);
  Matrix& operator = (const Matrix&);
 
public:
  Matrix(unsigned width, unsigned height)
    : Width(width), Height(height)
  {
    // Тут не безопасно с точки зрения исключений, но пофиг.
    assert(Width > 0 && Height > 0);
    Matr = new int*[Height];
    for (unsigned i = 0; i < Height; ++i)
    {
      Matr[i] = new int[Width];
      // Тут возможно в каждую ячейку нули прописать надо.
    }
  }
 
  ~Matrix()
  {
    for (unsigned i = 0; i < Height; ++i)
    {
      delete[] Matr[i];
    }
    delete[] Matr;
  }
 
  void RandomFill()
  {
    for (unsigned y = 0; y < Height; ++y)
    {
      for (unsigned x = 0; x < Width; ++x)
      {
        Matr[y][x] = rand() % 9;
      }
    }
  }
 
  void Print() const
  {
    for (unsigned y = 0; y < Height; ++y)
    {
      for (unsigned x = 0; x < Width; ++x)
      {
        cout.width(5);
        cout << Matr[y][x]; 
      }
      cout << endl;
    }
    cout << endl;
  }
 
  bool Add(const Matrix& other)
  {
    if (Width != other.Width || Height != other.Height)
    {
      assert(!"Bad matrix size.");
      return false;
    }
 
    for (unsigned y = 0; y < Height; ++y)
    {
      for (unsigned x = 0; x < Width; ++x)
      {
        Matr[y][x] += other.Matr[y][x];
      }
    }
 
    return true;
  }
 
  bool Sub(const Matrix& other)
  {
    if (Width != other.Width || Height != other.Height)
    {
      assert(!"Bad matrix size.");
      return false;
    }
 
    for (unsigned y = 0; y < Height; ++y)
    {
      for (unsigned x = 0; x < Width; ++x)
      {
        Matr[y][x] -= other.Matr[y][x];
      }
    }
 
    return true;
  }
};
 
 
int main()
{
  Matrix m1(2, 3);
  m1.RandomFill();
 
  Matrix m2(2, 3);
  m2.RandomFill();
 
  cout << "M1:" << endl;
  m1.Print();
 
  cout << "M2:" << endl;
  m2.Print();
 
  m1.Add(m2);
  cout << "M1 after add:" << endl;
  m1.Print();
 
  m1.Sub(m2);
  cout << "M1 after sub:" << endl;
  m1.Print();
 
  m1.Sub(m1);
  cout << "M1 after self sub:" << endl;
  m1.Print();
 
  return 0;
}
 
Текущее время: 16:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru