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

Вопрос по генерации случайного числа. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти max значение в массиве http://www.cyberforum.ru/cpp-beginners/thread180122.html
Подскажите плиз . Задание звучит так : взять произвольный массив из 10 чисел и чтобы программа определила максимум из этих чисел .А затем вычислить сумму чисел до максимума и после максимума. Я...
C++ Вычислить и вывести номер первого элемента последовательности Фибоначчи > 1000. Вычислить и вывести номер первого элемента последовательности Фибоначчи > 1000.(Числа фибоначи : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, .... ,где элементы числовой последовательности в которой... http://www.cyberforum.ru/cpp-beginners/thread180117.html
C++ Ввести 10 целых чисел, вывести минимальную по абсолютной величине разность между соседними числами.
Ввести 10 целых чисел, вывести минимальную по абсолютной величине разность между соседними числами. На языке C (MVS), Заранее спасибо.
Алгоритм вычисления дня недели по дате C++
Посдкажите алгоритм вычисления дня недели по дате( день, месяц, год). int a = (14 - month)/12; int y = year - a; int m = month + 12*a - 2; int week = (day+y+(y/4)-(y/100)+(y/400)+(31*m)/12) % 7;...
C++ Выход из лабиринта. В чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread180108.html
Не могу понять, почему моя программа иногда выдает ошибку, а иногда работает хорошо. Помогите пожалуйста. #include<iostream> #include <time.h> #include<cmath> using namespace std; int main() {...
C++ Сформировать строку, являющуюся самым коротким текстовым представлением числа Помогите решить задачу. Пожалуйста. подробнее

Показать сообщение отдельно
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97

Вопрос по генерации случайного числа. - C++

22.10.2010, 21:51. Просмотров 804. Ответов 9
Метки (Все метки)

Здрасьте еще раз!
На этот раз я никак не могу понять, как сделать генерацию случайных чисел (заполнение массива), которая зависит от времени. Есть код программы (приведен ниже). Программа работает со 100% производительностью Поэтому ошибки в вычислениях искать не нужно. Помогите только с генератором.
Раньше был генератор вне зависимости от времени, но он выдавал каждый запуск одни и те же числа. Мне же нужно, чтобы каждый раз были разные.
После того, как я почитал книженцию и заменил все согласно моему понимаю, то числа действительно после каждого запуска стали разными. Однако, все числа в массиве одинаковые. Возможно, предыдущие 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
/*Функция для генерации случайного числа в интервале от 1 до 100.*/
int func_random (){
    srand(time(NULL));
    return 1 + rand() % 100;
}
/*Функция для вычисления количества слагаемых и суммы до первого отрицательного элемента.*/
int func_sum(int MasSize, int* Massive){
    int i, sum_MasElement = 0;
    int num_MasElement = 0;
    for(i = MasSize - 1; i > 0; i--){
        if(Massive[i] >= 0){
            sum_MasElement += Massive[i];
            num_MasElement += 1;
        }
        else{
            break;
        }
}
    printf("\nThe sum of numbers under first minus element >> %d.", sum_MasElement);
    printf("\nThe numbers under first minus element >> %d.", num_MasElement);
return 0;
}
 
int main(){
    int MasSize; //Объявление типа размера массива и суммы.
    int* Massive; //Объявление указателя на начальный элемент массива.
    int i, tmp; //Объявление типа параметра цикла.
    printf("\tTask #5. Sum under first minus element.\n\n");
    printf("ATTENTION! Size of massive must be more then 0!\n");
/*Ввода и проверка размера массива.*/   
    do{
        printf("Input size of massive >> ");
            scanf("%d", &MasSize);
        }
    while(MasSize <= 0);
    Massive = new int [MasSize];
/*Условие на проверку инициализируемости указателя (захват памяти).*/   
    if(Massive == NULL){
        printf("Sorry, memory was not captured!");
        return 1;
    }
/*Цикл на заполнение массива.*/
    printf("\nThe filling of the array by randomize numbers...\n\n");
    for( i = 0; i < MasSize; i++){
        Massive[i] = func_random();
        tmp = func_random();
        if(tmp > 5){
            Massive[i] = -Massive[i];
        }
    }
    printf("Put result massive out:\n");
    for(i = 0; i < MasSize; i++){
        printf("%d ", Massive[i]);
    }
/*Вызов функции*/
    func_sum(MasSize, Massive);
    printf("\n\n\t\tPlease, put anykey for exit from programm...");
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru