Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 3
Регистрация: 05.10.2014
Сообщений: 209

Почему rand() выдает не те числа, которые я ожидаю

12.12.2014, 10:42. Показов 1359. Ответов 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
#include <stdio.h>
#include <string.h>
#include <cstdlib>
#include <iostream>
#include <ctype.h>
#include <ctime>
int main()
{
    int n;
    char symbol0 = '0';
    char symbol1 = '1';
    char symbol2 = '2';
    char str1[100];
 
printf("\n n-");
scanf("%d",&n);
 
 
srand (time(NULL));
for (n=0;n<10;n++)
printf("% d",rand()%99+97);
 
    getchar();
    getchar();
}
Почему он выдает рандомную последовательность чисел не из диапазона от 97 до 99, а чисел больших(как будто складывает эти числа и выдает из диапазона (99+97)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2014, 10:42
Ответы с готовыми решениями:

Оператор rand() выдает только одно и то же число. Почему?
Постоянно выдает 41. В чем дело? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int n; ...

Функция rand() выдает числа от 0 до 32768
Qt 4.7.4. Функция rand() выдает числа от 0 до 32768, а хотелось бы до 0x7FFF FFFF или 0xFFFF FFFF. Можно исправить?

Генератор случайных чисел rand() выдаёт одинаковые числа
Например, сделаем маленькую программу в которой будет переменная int chislo. Дальше будет так: chislo = rand() + 1 % 10; cout &lt;&lt;...

6
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.12.2014, 10:49
Цитата Сообщение от Дарья1997 Посмотреть сообщение
Почему он выдает рандомную последовательность чисел не из диапазона от 97 до 99, а чисел больших(как будто складывает эти числа и выдает из диапазона (99+97)
Как вы написали, так он и делает. Слушается вас
C++
1
printf("% d",rand()%3+97)
1
2 / 2 / 3
Регистрация: 05.10.2014
Сообщений: 209
12.12.2014, 10:53  [ТС]
а вы не подскажите, как можно сгенерировать число,например, из такого же диапазона(от 97 до 99), но при этом исключая число 98?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.12.2014, 11:16
C++
1
printf("% d",2*(rand()%2)+97);
1
2 / 2 / 3
Регистрация: 05.10.2014
Сообщений: 209
12.12.2014, 11:20  [ТС]
то есть при умножении rand на двойку, мы получается исключаем второй символ из диапазона 97-99? или я не так поняла?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
12.12.2014, 11:32
rand()%2 даст два результата - 0 или 1, после умножения 0 или 2, после сложения 97 или 99.
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
12.12.2014, 11:39
Для двух фиксированных значений, имхо, очевиднее их возвращать напрямую, а не строить формулы:
C++
1
rand() % 2 ? : 97 : 99;
P.S. заменив конечно 97, 99 на именованные константы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2014, 11:39
Помогаю со студенческими работами здесь

Почему при попытки считывания выдаёт какие-то непонятные символы, а не те, которые требовались?
#include &lt;cstdio&gt; #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; int main () { double...

Rand выдает не те результаты
Здравствуйте учусь программировать, по тыкайте меня носом пожалуйста где неправильно ставлю, один придел рандома гонит непонятно что но...

почему то при вводе числа не выдает сумму
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include &quot;locale.h&quot; #include &lt;windows.h&gt; using...

Почему JavaScript выдает числа от 1 до 10, если он должен выдавать от 1 до 9 ?
Почему JavaScript выдает числа от 1 до 10, если он должен выдавать от 1 до 9 ? В цикле while написано же (x &lt; 10), т.е. если число равно...

Вместо десятичной представления числа выдает целое. Почему?
Написала в делфи программу нахождения корней квадратного уравнения. При тестировке программы и вводе значений а=4, b=4, c=1 вместо должного...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru