Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Вывод массива - C++

02.02.2010, 22:28. Просмотров 422. Ответов 8
Метки нет (Все метки)

Здрасти, имеется заголовочный файл "matrix.h", в котором создается двумерный массив:
C++
1
2
3
4
5
6
int** CreateMatrix(int count_row,int count_col){
    int** pArray=new int*[count_col];
    for (int i=0; i<count_col; i++)
    pArray[i]=new int[count_row];
    return pArray;
}
и имеется файл *.cpp, в котором этот массив заполняется и выводится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    
    int count_row=0;
    int count_col=0;
    std::cout<<"Vvedite ramernost matrici: ";
    std::cin>>count_row>>count_col;
 
    int** pA=CreateMatrix(count_row,count_col);
    srand(time(NULL));
    for (int i=0; i<count_row; i++){
    for (int j=0; j<count_col; j++){
        pA[i][j]=rand()%7;
        std::cout<<pA[i][j];
    }
        std::cout<<std::endl;
    }

Когда вводиш размерность например 4 на 4, то все ок, а когда например 9 на 1 вылезает ошибка. В чем ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2010, 22:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод массива (C++):

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод) - C++
Как сделать чтобы список студентов выводился на экран в конце? #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

Открытые функции класса: ввод массива, вывод массива, определение длины вектора - C++
Данные класса: массив N(10). Открытые функции класса: ввод массива, вывод массива, определение длины вектора. Длина массива определяется...

Вывод определенного элемента массива из массива символов - C++
Имеется символьный массив char, нужно вывести на экран произвольный элемент этого массива. Сделал так: #include &lt;iostream&gt; ...

Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного - C++
Очень срочно,помогите пожалуйста,чем быстрее - тем лучше=) Ввод и вывод массива целых чисел.задания оформить в виде функции,глобальные...

Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного - C++
Очень срочно,помогите пожалуйста,чем быстрее - тем лучше=) Ввод и вывод массива целых чисел.задания оформить в виде функции,глобальные...

Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива - C++
Есть программа #include &lt;iostream&gt; #include &lt;algorithm&gt; const int N = 5; int handSet(void) { int a; std::cout...

8
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
02.02.2010, 22:48 #2
CreateMatrix создает массив указателей а не двумерный массив. Использовать pA таким образом нельзя
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.02.2010, 22:52  [ТС] #3
а как можно создать динам.массив в заголовочном файле и заполнить его в файле *.cpp???
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,479
02.02.2010, 22:58 #4
Заголовочные файлы вообще то служат для объявления функций\классов\переменных а не для действий с ними, зачем с ними такое вытворять?)
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.02.2010, 23:01  [ТС] #5
тоесть создавать массив лучше в *.cpp?
0
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
02.02.2010, 23:02 #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
int** CreateMatrix(int count_row,int count_col){
    int** pArray=new int*[count_row];
    for (int i=0; i<count_col; i++)
    pArray[i]=new int[count_row];
    return pArray;
}
 
 
int main(int argc, char* argv[])
{
    int count_row=0;
    int count_col=0;
    std::cout<<"Vvedite ramernost matrici: ";
    std::cin>>count_row>>count_col;
 
    int** pA=CreateMatrix(count_row,count_col);
    srand(time(NULL));
    for (int i=0; i<count_col; i++){
    for (int j=0; j<count_row; j++){
        pA[i][j]=rand()%7;
        std::cout<<pA[i][j];
    }
        std::cout<<std::endl;
    }
 
 
        getch();
    return 0;
}
Да какая разница, где его создавать....
У вас же просто ф-ция объявлена в h файле.
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.02.2010, 23:15  [ТС] #7
Зоти Сергей, такая же ошибка(( вот 4 и 4, 1 и 9 все работает, но когда вводиш 9 и 1 или тп то ошибка

Добавлено через 2 минуты
Цитата Сообщение от PointsEqual Посмотреть сообщение
Зоти Сергей, такая же ошибка(( вот 4 и 4, 1 и 9 все работает, но когда вводиш 9 и 1 или тп то ошибка
Извиняюсь все работет, перепутал столбцы с строками. спасибо

Добавлено через 1 минуту
Вот и я думаю, правильно что эту функцию в h файл запихнул, тк читал книжку и там было сказано функции желательно помещать в h файл
0
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
03.02.2010, 00:19 #8
В книжке имелось ввиду, наверное, то объявление функций происходит в h вайле.
Тоесть, чаще в h фалы помещают прототипы функций. А их реализацию в cpp.
В вашем случае
в .h
C++
1
int** CreateMatrix(int count_row,int count_col);
а в cpp
C++
1
2
3
4
5
6
7
int** CreateMatrix(int count_row,int count_col)
{
    int** pArray=new int*[count_row];
    for (int i=0; i<count_col; i++)
    pArray[i]=new int[count_row];
    return pArray;
}
Это не обязательно, но облегчает чтение программы
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.02.2010, 00:45  [ТС] #9
точно
0
03.02.2010, 00:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2010, 00:45
Привет! Вот еще темы с ответами:

Вывод массива - C++
Помогите пожалуйста написать программу которая выводит массив на ввиде k столбцов и оканчивается на n числе, заранее спасибо

вывод массива - C++
че тут не так? пишит что проблемма в строке cout &lt;&lt; arr.print &lt;&lt; endl; #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; ...

Вывод массива - C++
Здрасти, помогите вывести массив: #include &lt;iostream&gt; #include &lt;conio.h&gt; int* CreateDoubleDynArray(unsigned int count_row,...

Вывод массива - C++
Не могу вывести массив после нахождения суммы. Прошу помочь или подкиньте-ка идею) void c(int **m, int s, int r) { for (int...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru