Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
BUG-kpl
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 15
#1

Не соображу почему не выводится массив - C++

30.09.2015, 17:40. Просмотров 234. Ответов 8
Метки нет (Все метки)

Код:

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void func(  int a, int b)
{
 
    int i;
    int c;
    int mas[a][b];
    srand(time(NULL));
   for (i=0 ; i<a ; i++)
    {
 
for ( c=0 ; c<b; c++)
{
    mas[i][c] = 30+rand()%31;
}
cout<< mas[i][c]<<" " ;
    }
cout<<endl;
}
 
 
int main()
{
    int a;
    int b;
   cin>>a;
    cin>>b;
void func ( int a, int b);
}
Объясните , пожалуйста , почему массив не выводится на экран?
http://www.cyberforum.ru/cpp-beginners/thread669323.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2015, 17:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не соображу почему не выводится массив (C++):

Почему неправильно выводится массив?
Не пойму... массив arr выводится неправильно, если его выводить в...

Почему не полностью выводится массив?
Массив MyY не полностью выводится. В чем может быть проблема? Заранее спасибо....

Почему матрица выводится как обычный массив
//matriza.h #pragma once class matriza { float *b,max,s; int n,m,nom;...

Почему при выводе в поток char* выводится весь массив символов?
я немогу вот в чем разобраться есть : int main() { char v = &quot;Fdasda&quot;;...

Почему выводится в виде таблицы и почему не работает сортировка
почему выводится в виде таблицы? почему не работает сортировка? и как туда...

8
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,186
Завершенные тесты: 1
30.09.2015, 17:44 #2
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
void func(  int a, int b)
{
 
    int i;
    int c;
    //int mas[a][b];
    int** mas=new int*[a];
    for (i=0 ; i<a ; i++)
       mas[i]=new int[b];
    srand(time(NULL));
    for (i=0 ; i<a ; i++)
    {
        for ( c=0 ; c<b; c++)
          mas[i][c] = 30+rand()%31;
    }
   for (i=0 ; i<a ; i++)
   {
        for ( c=0 ; c<b; c++)
           cout<< mas[i][c]<<" " ;
       cout<<endl;
    }
    for (i=0 ; i<a ; i++)
       delete[] mas[i];
   delete[] mas;
}
0
BUG-kpl
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 15
30.09.2015, 17:49  [ТС] #3
чет тот же результат))
0
Ника))
41 / 41 / 20
Регистрация: 08.12.2010
Сообщений: 340
30.09.2015, 17:52 #4
20 и 19 строчку местами поменяй
0
BUG-kpl
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 15
01.10.2015, 09:49  [ТС] #5
не , не помогает.
Дык в чем проблема ?
Вы бы словами объяснили , я б сам подправил
0
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,186
Завершенные тесты: 1
01.10.2015, 09:55 #6
Еще ошибка в строке 32:
Цитата Сообщение от BUG-kpl Посмотреть сообщение
void func ( int a, int b);
Это объявление функции, а не вызов.
C++
1
func ( a, b);
0
BUG-kpl
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 15
01.10.2015, 10:25  [ТС] #7
Ок , спасибо - отредактировал все заработало))

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void func(  int a, int b)
{
  int i;
    int c;
    int mas[a][b];
    srand(time(NULL));
    for (i=0 ; i<a ; i++)
    {
        for ( c=0 ; c<b; c++)
          {
              mas[i][c] = 30+rand()%31;
         cout<< mas[i][c]<<" " ;
          }
           cout<<endl;
    }
 
}
 
 
int main()
{
    int a;
    int b;
   cin>>a;
    cin>>b;
func ( a,  b);
 
}
0
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,186
Завершенные тесты: 1
01.10.2015, 10:39 #8
1.
Цитата Сообщение от BUG-kpl Посмотреть сообщение
srand(time(NULL));
Перенесите в main(). Иначе потом будете спрашивать, почему это получается одинаковый набор чисел при повторном вызове func:
C++
1
2
func ( a,  b);
func ( a,  b);
2. Используйте динамическое выделение памяти для массивов с переменными границами. Т.к. на другом компиляторе Ваш код не пойдет.
0
BUG-kpl
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 15
01.10.2015, 10:52  [ТС] #9
Это типо как Вы показали?
C++
1
2
3
 int** mas=new int*[a];
    for (i=0 ; i<a ; i++)
       mas[i]=new int[b];
Тогда еще вопросик в конце есть такие строки:
C++
1
2
3
for (i=0 ; i<a ; i++)
       delete[] mas[i];
   delete[] mas;
Это с какой целью?
0
01.10.2015, 10:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2015, 10:52
Привет! Вот еще темы с решениями:

Почему выводится ноль?
Помогите вывести на экран значение , что я не делал , чем я не пытался оно дает...

Почему выводится неправильный год?
В общем, проблема такая: На форуме нашел пример, как получить текущий год. У...

Почему выводится разный результат?
int main(){ int mass={3,5,3,5,3}; int i=0, r=0; for(int i = 0; i &lt; 5;...

Почему вместо 2 выводится белеберда?
// mamalclass.cpp: определяет точку входа для консольного приложения. // ...


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

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

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