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

Проверьте пожалуйста код - C++

Восстановить пароль Регистрация
 
kbu
 Аватар для kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
22.11.2010, 17:10     Проверьте пожалуйста код #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
37
38
39
#include <iostream>
#include<stdlib.h>              // в этом файле содержатся функции rand() и srand()
#include<time.h>                // в этом файле содержится функция time()
using namespace std;
class CMatrix{
    int a[4][4],num;                    //Создаем двухмерный массив
    public:                             //Делаем данные доступными
    CMatrix(){                           //Создаем конструктор без параметров,числа массивов заполняются случайно
   for(int i=0; i<4; i++){
        for(int j=0; j<4;j++){
            a[i][j]=rand()%90+10;
            cout<<a[i][j]<<" ";
        }
        cout<<"\n";
        }
}
    CMatrix(int temp){
       for(int i=0; i<4; i++){          // перебираем отдельные строки (одномерные массивы в совокупности)
        for(int j=0; j<4;j++) {          // перебираем отдельные элементы каждой строки
            a[i][j]=temp;               // инициализация элементов значениями
            cout<<a[i][j]<<" ";         // показ значений на экран
        }
        cout<<"\n";                     // переход на другую строку матрицы
        }
    }
void print(){
    for(int i=0; i<4; i++){             // перебираем отдельные строки (одномерные массивы в совокупности)
        for(int j=0; j<4;j++) {          // перебираем отдельные элементы каждой строки
            cout<<a[i][j]<<" ";         // показ значений на экран
        }
        cout<<"\n";                     // переход на другую строку матрицы
        }
}
};
int main(){
    CMatrix m;
    //CMatrix m(7);
    m.print();
}
есть ощущения что работает не совсем корректно,а именно в строке CMatrix m(я создаю переменную)а при выполнении программы мне уже печатает строки...когда я пытаюсь вызвать функцию CMatrix(); значения у меня задваиваются....что я не так написал?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
22.11.2010, 17:23     Проверьте пожалуйста код #2
я не понял что делает твой код.Но.
когда я снял комментария с этой строки "//CMatrix m(7);" и сделал дебаг появилась ошибка.Тогда я удалил " CMatrix m;" и на экране увидел семерки.

Добавлено через 2 минуты
а если без инициализации конструктором,то выводятся цифры,которые входят в 90+10 как и ты указал.
kbu
 Аватар для kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
22.11.2010, 17:32  [ТС]     Проверьте пожалуйста код #3
По идее при строке CMatrix m - должна же создавать только переменная типа CMatrix , уже при вызове CMatrix(); - должны печататься рендомные числа,а при вызове CMatrix(7) вместо рендомных чисел должны печататься только 7....а рендомные числа уже печатаются при строке CMatrix m.....так же не должно быть
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
22.11.2010, 17:40     Проверьте пожалуйста код #4
Я не понимаю..
у меня при CMatrix (7) печаются семерки..
при CMatrix m -ранд
kbu
 Аватар для kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
22.11.2010, 17:48  [ТС]     Проверьте пожалуйста код #5
все верно,а разве должен печататься ранд при CMatrix m?
он же должен печататься при CMatrix();
или нет??
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
22.11.2010, 17:52     Проверьте пожалуйста код #6
функция
Цитата Сообщение от kbu Посмотреть сообщение
CMatrix
перегружена 2 раза.
1.Если не задается параметр(не инициализуется)-берется ранд
2.Или же,если есть начальное число.

Вы же сам код писали

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  CMatrix(){                           //ПЕРВЫЙ СЛУЧАЙ-С РАНДОМ
   for(int i=0; i<4; i++){
                for(int j=0; j<4;j++){
                        a[i][j]=rand()%90+10;
                        cout<<a[i][j]<<" ";
                }
                cout<<"\n";
        }
}
    CMatrix(int temp){
       for(int i=0; i<4; i++){          // ВТОРОЙ СЛУЧАЙ-КОНСТРУКТОР ИНИЦИАЛИЗАЦИИ
                for(int j=0; j<4;j++) {          // перебираем отдельные элементы каждой строки
                        a[i][j]=temp;               // инициализация элементов значениями
                        cout<<a[i][j]<<" ";         // показ значений на экран
                }
                cout<<"\n";                     // переход на другую строку матрицы
        }
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 18:06     Проверьте пожалуйста код
Еще ссылки по теме:

Проверьте код пожалуйста C++
C++ Проверьте код пожалуйста на цикл в С++
C++ Проверьте код пожалуйста

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

Или воспользуйтесь поиском по форуму:
kbu
 Аватар для kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
22.11.2010, 18:06  [ТС]     Проверьте пожалуйста код #7
уже со всем разобрался!!)Спасибо за помощь)
Я просто забыл,что конструктор вызывается автоматом...
теперь все стало на свои места!
Yandex
Объявления
22.11.2010, 18:06     Проверьте пожалуйста код
Ответ Создать тему
Опции темы

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