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

Работа с генератором случайных чисел - C++

Восстановить пароль Регистрация
 
dero
1 / 1 / 1
Регистрация: 12.10.2012
Сообщений: 39
19.10.2013, 15:43     Работа с генератором случайных чисел #1
Здравствуйте, уважаемые форумчане. Прошу помощи вот с такой задачей, не могу никак ничего придумать.
Вот собственно задача:
Сгенерировать два числа a,b и набор из 10 элементов, в диапазоне (-50;50). Найти минимальный из элементов, который находится в интервале (a;b). Если такой элемент отсутствует, то вывести -1.
Еще что важно: Решить нужно без использования массивов!
Суть я понимаю, и понимаю как решить, но не могу в коде реализовать, вот что я пока написал:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
 
int main(){
    srand((unsigned) time(NULL));
    int a,b,p;
    a = rand()%60; // Здесь в задаче не указан диапазон для генерации, по этому можно изменить его 
    b = rand()%60;
     if (a<b) {
        printf("a = %d \t b = %d\n",a,b);
        for (int i = 1;i<=10;i++){
            p = rand()%100-50;
            if (p>a && p<b) {
                // ну а здесь я вот не могу теперь придумать как сравнить с предыдущим элементом и если он меньше, то вывести. Возможно я не прав конечно, то исправьте меня
            }
 
        }
     }
     else ;
}
Заранее спасибо. Жду вашей помощи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2013, 15:43     Работа с генератором случайных чисел
Посмотрите здесь:

C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
Программа с генератором случайных чисел C++
Работа со звуком! (Ошибка) Аппаратный генератор случайных чисел! C++
Сформировать одномерный массив целых чисел, используя датчик случайных чисел C++
Как работать с генератором случайных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
19.10.2013, 15:51     Работа с генератором случайных чисел #2
dero, эммм, создайте 2 переменные, одна с индексом минимального элемента, вторая со значением минимального элемента. И как это может остутствовать минимальный элемент на отрезке? если там есть цифры, значит там есть и наименьшее значение
dero
1 / 1 / 1
Регистрация: 12.10.2012
Сообщений: 39
19.10.2013, 15:59  [ТС]     Работа с генератором случайных чисел #3
там найти нужно минимальный элемент не во всем наборе, а только из чисел которые входят в диапазон (а, б), а если таких нету, то вывести 1.
Я вот только что еще подумал, и вроде как добился нужного результат, конечно немного в "извращенной" форме, но все же:
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
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
 
int main(){
    srand((unsigned) time(NULL));
    int a,b,p;
    int c1=60,c2=60,c3=60,c4=60,c5=60,c6=60,c7=60,c8=60,c9=60,c10=60,min = c1;
    a = rand()%60;
    b = rand()%60;
     if (a<b) {
        printf("a = %d \t b = %d\n",a,b);
        for (int i = 1;i<=10;i++){
            p = rand()%100-50;
            printf("%d\t",p);
            if (p>a && p<b) {
                switch (i) {
                case 1:  c1 = p;
                case 2:  c2 = p;
                case 3:  c3 = p;
                case 4:  c4 = p;
                case 5:  c5 = p;
                case 6:  c6 = p;
                case 7:  c7 = p;
                case 8:  c8 = p;
                case 9:  c9 = p;
                case 10:  c10 = p;
                }
 
            }
 
 
        }
     if (c2<min && c2>a) min = c2;
     if (c3<min && c3>a) min = c3;
     if (c4<min && c4>a) min = c4;
     if (c5<min && c5>a) min = c5;
     if (c6<min && c6>a) min = c6;
     if (c7<min && c7>a) min = c7;
     if (c8<min && c8>a) min = c8;
     if (c9<min && c9>a) min = c9;
     if (c10<min && c10>a) min = c10;
     if (min == 60) printf("\n 1"); else
     printf("minimalnoe chislo v diapazone(%d,%d) = %d",a,b,min);
     }
     else printf("a<b");
 
     _getch();
}
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
19.10.2013, 16:01     Работа с генератором случайных чисел #4
dero, ну если работает, то хорошо)
Yandex
Объявления
19.10.2013, 16:01     Работа с генератором случайных чисел
Ответ Создать тему
Опции темы

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