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

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

30.09.2015, 17:40. Просмотров 240. Ответов 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);
}
Объясните , пожалуйста , почему массив не выводится на экран?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2015, 17:40
Ответы с готовыми решениями:

Почему выводится весь массив
Доброго времени суток! Прошу прощения за нубский вопорс, но окончательно...

Почему неправильно выводится массив?
Не пойму... массив 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
Модератор
Эксперт С++
7060 / 6605 / 4179
Регистрация: 18.12.2011
Сообщений: 17,405
Завершенные тесты: 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
Модератор
Эксперт С++
7060 / 6605 / 4179
Регистрация: 18.12.2011
Сообщений: 17,405
Завершенные тесты: 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
Модератор
Эксперт С++
7060 / 6605 / 4179
Регистрация: 18.12.2011
Сообщений: 17,405
Завершенные тесты: 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

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

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

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


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

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

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