IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Ошибка в random, Borland C++ 3.1
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 145
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Мне нужно создать одномерный массив случайного размера в диапазоне от 50 до 200 элементов, заполнить его случайными числами, и произвести некоторые операции с этим массивом. Написал следующее:

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{

int i;
int f=0;
int N= random(150)+50;
int* arr;
arr=(int*)malloc(N*sizeof(int));


randomize();

cout << "Nachalnyi massiv \n";

cout << "\n";


for (i=0; i<N; i++)
{
arr[i]=random(100)-50;
cout << " " << arr[i];
}


cout << "\n";
cout << "\n";

cout << "Nachalnye indeksy neuvelichivayuschihsya posledovatelnostei: " << "\n";
cout << "\n";

for (i=0; i<N; i++)
{
if (arr[i]>arr[i+1]) { if (!f) cout << i << " "; f=1; }
else f=0;
}

return 0;
}


Числа генерируются нормально, но размер массива почему-то всегда равен 50. В чем проблема? И кстати, после нескольких запусков программы из IDE куда-то деваются около 800 Мб виртуальнойй памяти...


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{

srand(time(NULL)); // <---------------------
int i;
int f=0;
int N = 50 + rand() % 150; // <--------------------
int* arr;
arr=(int*)malloc(N*sizeof(int));




cout << "Nachalnyi massiv \n";

cout << "\n";


for (i=0; i<N; i++)
{
arr[i]= rand()%100 - 50; // <-------------------
cout << " " << arr[i];
}


cout << "\n";
cout << "\n";

cout << "Nachalnye indeksy neuvelichivayuschihsya posledovatelnostei: " << "\n";
cout << "\n";

for (i=0; i<N; i++)
{
if (arr[i]>arr[i+1]) { if (!f) cout << i << " "; f=1; }
else f=0;
}

free(arr); // <--------------------
return 0;
}


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 145
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Е-мае... Только что заметил дополнительное условие: "В тексте программы запрещается использовать операцию индексации". А как тогда быть с циклом:

 for (i=0; i<N; i++)
{
if (arr[i]>arr[i+1]) { if (!f) cout << i << " "; f=1; }
else f=0;
}

Мне нужно вывести начальные индексы всех неувеличивающихся последовательностей массива... Как это сделать без индексации, я что-то не совсем понимаю.

Сообщение отредактировано: volvo -


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
после нескольких запусков программы из IDE куда-то деваются около 800 Мб виртуальнойй памяти...
Чем проверяешь? TaskManager-ом? Забудь... освобождением памяти занимается ОС, ты должен только убедиться, что твоя программа не имеет Memory Leaks (heapwalk-ом проходи по куче и смотри, сколько памяти было свободно перед началом работы программы, а сколько - после free)

Добавлено через 1 мин.
А операция индексации заменяется работой с указателем на текущий элемент массива...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.12.2024 13:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name