Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24

Програма должна имитировать n бросков игральной кости

01.02.2014, 23:22. Показов 1974. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите

програма должна имитировать n бросков игральной кости




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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <locale.h>
#include <iostream>
#include <cmath>
using namespace std;
int main (){
    setlocale(0,"");
    int n;
    printf ("\n\t\імітує n кидків шестигранної гральної кістки\n\n\n");
    printf ("Введ1ть к1льк1сть к1дк1в:   ");
    scanf ("%d", &n);
    srand (time(NULL) );
    printf ("\n\n\tрезультат:\n");// до сюда работает 
 
srand (time(NULL) );
 
 
    for (int i = 1; i < 7; i++)
    {
        if (i%10 == 0) printf("\n");
            /* Генерація дійсного випадкового числа: */
        int number = rand()%100 - 50;
        if (i == 6) i = 1;
        printf("%7d", number);
    }
 
 
 
 
    return 0;
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2014, 23:22
Ответы с готовыми решениями:

Бросок игральной кости
Добрый день! Решал соседу задачку из информатики, может кому пригодится или будут мысли на тему улучшения. Задача. Напишите...

Бросок игральной кости
Помогите решить задачу.При нажатии на соответствующую кнопку отображается результат броска игральной кости (от 1 до 6). При нажатии на...

Разработать программу, генерирующую случайное число по аналогу игральной кости
Задание: Разработать программу генерирующее случайное число по аналогу игральной кости. Программа должна иметь возможность выбора формы...

13
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
01.02.2014, 23:47
строчку if (i == 6) i = 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
#define _CRT_SECURE_NO_WARNINGS
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <locale.h>
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main (){
setlocale(0,"");
int n;
printf ("\n\t\імітує n кидків шестигранної гральної кістки\n\n\n");
printf ("Введ1ть к1льк1сть к1дк1в: ");
scanf ("%d", &n);
srand (time(NULL) );
printf ("\n\n\tрезультат:\n");// до сюда работает 
 
srand (time(NULL) );
 
 
for (int i = 1; i < 7; i++)
{
if (i%10 == 0) printf("\n");
/* Генерація дійсного випадкового числа: */
int number = rand()%12;
//if (i == 6) i = 1;
printf("%7d", number);
}
 
 
 
 
return 0;
 
}
Добавлено через 8 минут
25 строка - оставил вашу: for (int i = 1; i < 7; i++), но судя по коду правильнее все же for (int i = 1; i < n; i++)
0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
01.02.2014, 23:49  [ТС]
генератор должен видать числа от 1 до 6 , а цикл повторятся n раз , n вводится из клавиатуры
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
01.02.2014, 23:54
Цитата Сообщение от viktor 1105 Посмотреть сообщение
генератор должен видать числа от 1 до 6 , а цикл повторятся n раз , n вводится из клавиатуры
Ну так бы сразу и сказали, а то я не все разумею телепатически:
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
#define _CRT_SECURE_NO_WARNINGS
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <locale.h>
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main (){
setlocale(0,"");
int n;
printf ("\n\t\імітує n кидків шестигранної гральної кістки\n\n\n");
printf ("Введ1ть к1льк1сть к1дк1в: ");
scanf ("%d", &n);
srand (time(NULL) );
printf ("\n\n\tрезультат:\n");// до сюда работает 
 
srand (time(NULL) );
 
 
for (int i = 1; i < n; i++)
{
if (i%10 == 0) printf("\n");
/* Генерація дійсного випадкового числа: */
int number = rand()%7;
 
printf("%7d", number);
}
std::system("Pause");
 
return 0;
 
}
1
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
01.02.2014, 23:59  [ТС]
а можно как то исключить 0
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
02.02.2014, 00:00
viktor 1105, от 1 до 6:
C++
1
int number = rand() % 6 + 1;
1
-1 / 0 / 4
Регистрация: 01.02.2014
Сообщений: 13
02.02.2014, 00:05
Скомпилировал в VS 2010 - всё работает. Бесконечный цикл с рандомными значениями в пределах от -50 до 49. Только непонятно - для чего нужна переменная
C++
1
n
- она не используется, и для чего нужна строка
C++
1
if (i%10 == 0) printf("\n");
- она тоже не разу не проходит по условию.
0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
02.02.2014, 00:16  [ТС]
if (i%10 == 0) printf("\n") а разве она не возводит инф в 10 столбиках


#define _CRT_SECURE_NO_WARNINGS что это такое в начали программы
0
-1 / 0 / 4
Регистрация: 01.02.2014
Сообщений: 13
02.02.2014, 15:25
Цитата Сообщение от viktor 1105 Посмотреть сообщение
if (i%10 == 0) printf("\n") а разве она не возводит инф в 10 столбиках
Это было бы так если бы переменная i при выполнении программы имела значения, кратные десяти, но у тебя она имеет значения от 1 до 6, так что условие
C++
1
i%10 == 0
в твоей программе - всегда ложно.

Цитата Сообщение от viktor 1105 Посмотреть сообщение
#define _CRT_SECURE_NO_WARNINGS что это такое в начали программы
Это отключает генерацию некоторых предупреждений компилятором: например предупреждение относительно использования более безопасных функций
C++
1
fopen_s, sprintf_s
вместо обычных
C++
1
fopen, sprintf
Добавлено через 6 минут
Цитата Сообщение от mustimur Посмотреть сообщение
Ну так бы сразу и сказали, а то я не все разумею телепатически:
C++
1
2
3
//...
for (int i = 1; i < n; i++)
//...
Цикл будет повторяться n - 1 раз, чтобы цикл повторялся n раз надо делать так:
C++
1
2
3
//...
for (int i = 0; i < n; i++)
//...
0
33 / 28 / 9
Регистрация: 13.09.2013
Сообщений: 250
02.02.2014, 16:50
mustimur, viktor 1105, А зачем использовать функцию srand 2 раза??
C++
1
2
3
4
srand (time(NULL) );
printf ("\n\n\tрезультат:\n");// до сюда работает 
 
srand (time(NULL) )
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
02.02.2014, 20:06
Один и впрямь лишний

Добавлено через 1 час 18 минут
Цитата Сообщение от Slinner Посмотреть сообщение
Это было бы так если бы переменная i при выполнении программы имела значения, кратные десяти, но у тебя она имеет значения от 1 до 6, так что условие
C++
1
i%10 == 0
не точно, она может быть и больше 10, это счетчик числа броско, задаваемый в начале.
Цитата Сообщение от Slinner Посмотреть сообщение
Цикл будет повторяться n - 1 раз, чтобы цикл повторялся n раз надо делать так:
а вот с этим согласен, я эту 1 просмотрел (int i=1)
0
-1 / 0 / 4
Регистрация: 01.02.2014
Сообщений: 13
02.02.2014, 20:52
Цитата Сообщение от mustimur Посмотреть сообщение
Добавлено через 1 час 18 минут
не точно, она может быть и больше 10, это счетчик числа броско, задаваемый в начале.
Понятие кратности говорит о делении без остатка (остаток = 0). Я имел ввиду, что если i будет равно 0, 10, 20, 30 ... и т. д., то условие (i%10 == 0) будет истинным, но т. к. в его цикле i имеет значения от 1 до 6, то это условие всегда ложно, а значит printf("\n"); никогда не вызовется, другими словами - эта запись не имеет смысла.

Но теперь, конечно же, это не так. В цикле for(int i=0; i<n; i++) эта строка имеет смысл. Спасибо, что поправил
0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
02.02.2014, 21:39  [ТС]
просто ошибся , я С++ всего две недели изучаю
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
02.02.2014, 21:46
Цитата Сообщение от viktor 1105 Посмотреть сообщение
просто ошибся , я С++ всего две недели изучаю
Не ошибается тот кто ничего не делает это нормально

Добавлено через 15 секунд
Цитата Сообщение от viktor 1105 Посмотреть сообщение
просто ошибся , я С++ всего две недели изучаю
Не ошибается тот кто ничего не делает это нормально
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.02.2014, 21:46
Помогаю со студенческими работами здесь

Четыре грани первой игральной кости красные и две - белые
Четыре грани первой игральной кости красные и две - белые, а у второй кости две грани красные и четыре - белые. Один раз бросают...

Разработать модель процесса качения и определить номер выпавшей грани игральной кости
Игральная шестигранная кость катится по столу и останавливается.Разработать модель процесса качения и определить номер выпавшей грани.

Чему равна вероятность выпадения одного очка при бросании одной игральной кости?
Чему равна вероятность выпадения одного очка при бросании одной игральной кости? 1) 0 2) 1/6 3) ½ 4) 3/8

Что более вероятно: получить 12 или 11 очков при трёх бросаниях игральной кости?
Игральная кость бросается трижды. Пусть х — сумма очков, полученных при всех бросаниях. Что более вероятно: х = 12 или х = 11?

Чему равна вероятность выпадения четного количества очков при бросании одной игральной кости?
Чему равна вероятность выпадения четного количества очков при бросании одной игральной кости? 1) 0 2) 1/6 3) ½ 4) 3/8


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru