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

Заполнение динамического массива случайными числами - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 141, средняя оценка - 4.80
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 18:58     Заполнение динамического массива случайными числами #1
оч нужна помощь
написать в консоли программу: динаммический массив размерностью 20 заполняется случайными числами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.09.2010, 19:06     Заполнение динамического массива случайными числами #2
Это типа 20-мерный массив?
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 20:01     Заполнение динамического массива случайными числами #3
На уж:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <ctime>
using namespace std;
 
 
int main()
{
int* Arr;
Arr = new int[20]; // динамический массив твой
srand (time(NULL));
int num;
for(int i = 0;i < 20;i++)
{
   num = rand() % 20 + 1; // случайные числа от 0 до 20
Arr[i] = num;
}
for(int i = 0;i < 20;i++) {cout << Arr[i] << " " ;}
cout << endl;
delete []Arr;
 
    system("pause");
}
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 22:03  [ТС]     Заполнение динамического массива случайными числами #4
динамический массив твой

Спасибки, дорогой ты человек!
только некоторые слова мне совсем не знакомы. Нас так не учат!
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
15.09.2010, 22:16     Заполнение динамического массива случайными числами #5
Если препод будет придератсо,скажы что он ламер!
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
15.09.2010, 22:20     Заполнение динамического массива случайными числами #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
#include <stdio.h>
#include <conio.h>
#include <time.h>
 
int main()
{
    int *Arr;
    int num;
    int i;
 
    Arr = (int *)malloc(20 * sizeof(int));
 
    srand (time(NULL));
 
    for (i = 0; i < 20; i++)
    {
        num = rand() % 20 + 1;
        Arr[i] = num;
    }
 
    for(i = 0; i < 20; i++)
        printf("%d ", Arr[i]);
 
    free(Arr);
 
    getch();
    return 0;
}
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 22:30     Заполнение динамического массива случайными числами #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
#include <iostream>
#include <ctime> // здесь включается функция времени
using namespace std;
 
 
int main()
{
int* Arr; // Указатель на ячейки памяти в которых хранятся значения элементов массива
Arr = new int[20]; // динамический массив твой
srand (time(NULL)); //  Ето для генерирования случайного числа(используя текущее время)
int num;
//********************* Цикл выполняемый 20 раз,добавляет 20 случайных чисел
// в массив(каждый раз генерируя новое rand()%20 от 0 до 20)
for(int i = 0;i < 20;i++)
{
   num = rand() % 20 + 1; // случайные числа от 0 до 20
Arr[i] = num;
}
//**********************
for(int i = 0;i < 20;i++) {cout << Arr[i] << " " ;}
cout << endl;
delete []Arr; // стираем наш массив после использования чтобы освободить память
 
        system("pause");
}
rand()%20.....вместо 20 можешь вписать любое другое число. Если 100 то диапазон чисел будет от 0 до 100
ит.д.
Теперь наверное все понятно
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 22:31  [ТС]     Заполнение динамического массива случайными числами #8
C
1
2
3
#include <stdio.h>
#include <conio.h>
#include <time.h>
не знакомые мне библиотеки;


srand (time(NULL)) - эта строчка непонятна;

и эта free(Arr);

getch();
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
15.09.2010, 22:34     Заполнение динамического массива случайными числами #9
#include <stdio.h> - стандартная библиотека ввода/вывода в Си.
#include <conio.h> - для getch(); - задержывает окно консоли.
#include <time.h> - для time(); -
Функция time в соответствии с системными часами возвращает
количество секунд, прошедших от 00:00:00 значения времени по
Гринвичу,т.е. с 1 января 1980 года. Возвращаемое значение хранит-
ся в расположении, заданном по timeptr. Если возввращаемое значе-
ние не запомнено, timeptr является NULL.
srand (time(NULL)) - зерно для rand(); - Функция rand возвращает псевдослучайное целое в интервале
от 0 до 32767
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
15.09.2010, 22:35     Заполнение динамического массива случайными числами #10
Непрограммистка
Вам вообще на Си или на плюсах надо?
srand (time(NULL)) - функция, инициализирующая генератор случайных чисел, чтобы он не возвращал одно и то же значение. сама функция srand принимает число и инициализирует им генератор. А функция time(NULL) возвращает количество миллисекунд, прошедшее с первого января 1970 года. Таким образом при каждом запуске программы time() будет возвращать разные числа и функция srand() будет этими каждый раз разными числами инициализировать генераторю
free(Arr) освобождает память, выделенную с помощью malloc, на которую указывает указатель Arr
getch() ожидает нажатия любой клавиши, в данном случае используется как задержка перед завершением программы (и закрытием консоли).
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 22:37     Заполнение динамического массива случайными числами #11
_getch это чтоб консоль не закрывалась после выполнения программы.Значит get character - получи символ
free(Arr) я так понимаю то же что delete [] Arr освобождает память от этого Arr
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 22:43  [ТС]     Заполнение динамического массива случайными числами #12
Ну теперь все более менее ясно! Огромное спасибо!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.09.2010, 23:03     Заполнение динамического массива случайными числами #13
Непрограммистка,
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
class RandomNumber {
    int nLimit;
public:
    RandomNumber(int lim) : nLimit(lim) {}
    int operator() () { return rand() % nLimit; }
};
 
int main(){
    int size = 20;
    int limit = 100;
    std::vector<int> vec(size);
    srand(time(NULL));
    std::generate(vec.begin(), vec.end(), RandomNumber(limit));
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
Преподу привет передавайте!
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 23:18  [ТС]     Заполнение динамического массива случайными числами #14
easybudda, у него сердце станет, если я ему скажу что я это сама написала! Ведь он такому не научил даже! Хорошо бы прокоментировать строчки...
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.09.2010, 23:44     Заполнение динамического массива случайными числами #15
Цитата Сообщение от Непрограммистка Посмотреть сообщение
Ведь он такому не научил даже! Хорошо бы прокоментировать строчки...
Если совсем непонятно, нужно хотябы в общих чертах про STL почитать. По сути набор стандартных шаблонных классов-контейнеров, а так же классов и функций для работы с ними.
vector - класс-контейнер, представляющий из себя динамический массив.
generate - функция для заполнения элементов класса-контейнера значениями
copy функция, копирующая элементы класса-контейнера
iterator "умный" указатель на элементы класса-контейнера
ostream_iterator "хитрый" указатель на выходной поток
RandomNumber - класс-функтор. Выдаёт случайные значения от 0 до limit, которые и присваиваются элементам динамического массива vec функцией generate...
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
16.09.2010, 09:50  [ТС]     Заполнение динамического массива случайными числами #16
Вы в каком С++ прогаммируете, мне нужен 6.0. У меня ошибки выдает!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.09.2010, 10:19     Заполнение динамического массива случайными числами #17
Цитата Сообщение от Непрограммистка Посмотреть сообщение
Вы в каком С++ прогаммируете, мне нужен 6.0. У меня ошибки выдает!
Microsoft Visual Studio 6.0 или Borland C++ Builder 6.0? В любом случае и тот и другой давно морально устарели, и писать код с оглядкой на них - затея сомнительной нужности. В этой отдельно взятой програмке используются классы STL (Standart Template Library) - даже судя по названию что-то стандартное, то есть должно бы присутствовать. Если компилятор про эти стандартные классы ничего не знает - не нужен такой компилятор! Кстати, давно интересно - спросить неукого: с какой целью учат студентов тому, что заведомо не пригодится? Если не сложно, поинтересуйтесь у преподавателя и отпишитесь, пожалуйста...
Заполнение динамического массива случайными числами Заполнение динамического массива случайными числами
И просто на всякий случай - а ошибки-то какие?
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
16.09.2010, 11:58  [ТС]     Заполнение динамического массива случайными числами #18
Если не сложно, поинтересуйтесь у преподавателя и отпишитесь, пожалуйста...

Ну дела никому до нас нет! Обещается установить на компах 5.0, а пока работает здесь.
Вот что у меня заработало
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
#include <iostream.h>
#include <stdlib.h> 
#include <ctime>
int main()
{
    int i;
    int *A;
    int b;
    cout<<"razmernost:";
    cin>>b;
    
 
    A=new int [b];
    srand( (unsigned)  time( NULL));
    for (i=0;i<b;i++)
    {
        A[i]=rand();
    }
    for (i=0; i<b;i++)
    {
    
        cout<<A[i]<<" ";
    }
    cout<<endl;
    delete [] A;
    system  ("pause");
    return 0;
}
Добавлено через 5 минут
А еще вот задачка!
 Комментарий модератора 
На форуме действует правило: одна тема - один вопрос.

Программа содержит строки!
Нужна ввести с клавиатуры строку, посчитать большие гласные латинские буквы и маленькие гласные латинские буквы и сравнить каких больше!


Добавлено через 1 минуту
Microsoft Visual C++ 6.0
chesser
17 / 17 / 1
Регистрация: 02.08.2010
Сообщений: 44
16.09.2010, 12:58     Заполнение динамического массива случайными числами #19
Так можно попробовать:
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
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{char s[100];
 char Ltr[12]={'A', 'E', 'I', 'O', 'U', 'Y', 'a', 'e', 'i', 'o', 'u', 'y'};
 int i, j, k1=0, k2=0;
 
 cout<<"Stroka: ";
 cin.getline(s, 100);
 for(i=0; s[i]!='\0'; i++)
  for(j=0; j<12; j++)
   if (s[i]==Ltr[j])
   {if (j<6)
     k1++;
    else
     k2++;
   }
 cout<<"Kol-vo bolshih glasnyh bukv: "<<k1<<endl;
 cout<<"Kol-vo malyh glasnyh bukv: "<<k2<<endl;
 if (k1==k2)
  cout<<"V stroke odinakovoe kol-vo bolshih i malyh glasnyh lat. bukv"<<endl;
 else
 if (k1>k2)
  cout<<"V stroke bolshe bolshih glasnyh lat. bukv"<<endl;
 else
  cout<<"V stroke bolshe malyh glasnyh lat. bukv"<<endl;
 
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 09:51     Заполнение динамического массива случайными числами
Еще ссылки по теме:

Заполнение массива случайными числами из диапазона C++
Заполнение массива случайными числами C++
Заполнение двумерного массива случайными числами C++

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

Или воспользуйтесь поиском по форуму:
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
30.09.2010, 09:51  [ТС]     Заполнение динамического массива случайными числами #20
Что значит в условии где s[i]!= вот это-> '\0'
Yandex
Объявления
30.09.2010, 09:51     Заполнение динамического массива случайными числами
Ответ Создать тему
Опции темы

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