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

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

Восстановить пароль Регистрация
 
viktor 1105
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
01.02.2014, 23:22     Програма должна имитировать n бросков игральной кости #1
помогите

програма должна имитировать 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;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2014, 23:22     Програма должна имитировать n бросков игральной кости
Посмотрите здесь:

C++ Как можно имитировать движение мыши (С++)
C++ Програма должна слаживать два числа, в котором по 200 символов, и выводить ответ
Как имитировать нажатие клавиш? C++
C++ Игра в кости
C++ Имитировать нажатие клавиши
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
01.02.2014, 23:47     Програма должна имитировать n бросков игральной кости #2
строчку 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++)
viktor 1105
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
01.02.2014, 23:49  [ТС]     Програма должна имитировать n бросков игральной кости #3
генератор должен видать числа от 1 до 6 , а цикл повторятся n раз , n вводится из клавиатуры
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
01.02.2014, 23:54     Програма должна имитировать n бросков игральной кости #4
Цитата Сообщение от 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;
 
}
viktor 1105
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
01.02.2014, 23:59  [ТС]     Програма должна имитировать n бросков игральной кости #5
а можно как то исключить 0
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
02.02.2014, 00:00     Програма должна имитировать n бросков игральной кости #6
viktor 1105, от 1 до 6:
C++
1
int number = rand() % 6 + 1;
Slinner
-1 / 0 / 3
Регистрация: 01.02.2014
Сообщений: 13
02.02.2014, 00:05     Програма должна имитировать n бросков игральной кости #7
Скомпилировал в VS 2010 - всё работает. Бесконечный цикл с рандомными значениями в пределах от -50 до 49. Только непонятно - для чего нужна переменная
C++
1
n
- она не используется, и для чего нужна строка
C++
1
if (i%10 == 0) printf("\n");
- она тоже не разу не проходит по условию.
viktor 1105
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
02.02.2014, 00:16  [ТС]     Програма должна имитировать n бросков игральной кости #8
if (i%10 == 0) printf("\n") а разве она не возводит инф в 10 столбиках


#define _CRT_SECURE_NO_WARNINGS что это такое в начали программы
Slinner
-1 / 0 / 3
Регистрация: 01.02.2014
Сообщений: 13
02.02.2014, 15:25     Програма должна имитировать n бросков игральной кости #9
Цитата Сообщение от 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++)
//...
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
02.02.2014, 16:50     Програма должна имитировать n бросков игральной кости #10
mustimur, viktor 1105, А зачем использовать функцию srand 2 раза??
C++
1
2
3
4
srand (time(NULL) );
printf ("\n\n\tрезультат:\n");// до сюда работает 
 
srand (time(NULL) )
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
02.02.2014, 20:06     Програма должна имитировать n бросков игральной кости #11
Один и впрямь лишний

Добавлено через 1 час 18 минут
Цитата Сообщение от Slinner Посмотреть сообщение
Это было бы так если бы переменная i при выполнении программы имела значения, кратные десяти, но у тебя она имеет значения от 1 до 6, так что условие
C++
1
i%10 == 0
не точно, она может быть и больше 10, это счетчик числа броско, задаваемый в начале.
Цитата Сообщение от Slinner Посмотреть сообщение
Цикл будет повторяться n - 1 раз, чтобы цикл повторялся n раз надо делать так:
а вот с этим согласен, я эту 1 просмотрел (int i=1)
Slinner
-1 / 0 / 3
Регистрация: 01.02.2014
Сообщений: 13
02.02.2014, 20:52     Програма должна имитировать n бросков игральной кости #12
Цитата Сообщение от 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++) эта строка имеет смысл. Спасибо, что поправил
viktor 1105
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 24
02.02.2014, 21:39  [ТС]     Програма должна имитировать n бросков игральной кости #13
просто ошибся , я С++ всего две недели изучаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2014, 21:46     Програма должна имитировать n бросков игральной кости
Еще ссылки по теме:

имитировать работу препроцессора #define C++
C++ В программе моделирующей бросок моенты, моделируется только 100 бросков Орла
C++ Результаты бросков спортсменов в матрице. Найти победителя

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
02.02.2014, 21:46     Програма должна имитировать n бросков игральной кости #14
Цитата Сообщение от viktor 1105 Посмотреть сообщение
просто ошибся , я С++ всего две недели изучаю
Не ошибается тот кто ничего не делает это нормально

Добавлено через 15 секунд
Цитата Сообщение от viktor 1105 Посмотреть сообщение
просто ошибся , я С++ всего две недели изучаю
Не ошибается тот кто ничего не делает это нормально
Yandex
Объявления
02.02.2014, 21:46     Програма должна имитировать n бросков игральной кости
Ответ Создать тему
Опции темы

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