Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2015, 20:16   #1
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию генератор случайных чисел с++

Код:
#include <iostream>
 #include <cmath>
  #include <stdlib.h>
   #include <time.h>
using namespace std;
int rand_0toN1 (int n);
int main(){
	int n,i;
	int r;
	while (1){
    cout<<endl;
    cout<<"введем число(кроме 0) ";
    cin>>n;
    if( n==0)//если пользователь ввел 0 ,бесконечный цикл зав.
    break;
}
 
   

	srand (time(NULL));//установка начального числа для 
	                   //генерации случайных чисел.
	
	for (i=1; i<=n; i++){
		r=rand_0toN1(6)+1;//получить число в диапазоне от1 до 6
	
		cout<<r<<" ";      //напечатать это число.
	}
	return 0;
}
//функция Random 0-to-N1.
//Генерирует случайное целое число в диапазоне от 0 до N-1,
//обеспечивая равное распределение вероятности
//для появления каждого целого числа.
int rand_0toN1(int n){
	return rand()%n;
}
я вставил бесконечный цикл ,чтобы многократно повторять код и программа перестала работать ,что я сделал не так.? И еще ,посоветуйте где почитать про правильное расставление отступов в с++ ? Спасибо.
sergei1960jabber.ru

Последний раз редактировалось Сергей.Ш; 24.07.2015 в 20:21.
Сергей.Ш вне форума Ответить с цитированием
Старый 24.07.2015, 20:45   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Сергей.Ш Вы думаете, что сдесь все сидят и мечнают, когда-же Сергей.Ш, выложит свой говнокод? Я уже задолбался писать - "Читайте правила оформления сообщений". Если Вы считаете нас дураками, нехрен и обращаться. Если правада, хотите получить ответ, придерживайтесь нормативов. Пока на ваш ответ могу дать ответ - жопа.

Повторюсь, что-бы не посчитали за флуд.

1. В названии - краткое описание проблемы. Не "генератор случайных чисел", а "Мой генератор случайных чисел, не генерирует случайные числа". Или, что-то в этом роде, характеризующее проблему.
2.Описание проблемы в более расширенном режиме.
3. Не полный код, а его проблемный участок. Если Вы думаете, что мы не можем разобраться в циклах и прочей мутоте, - заблуждаетесь. Это поле уже давно хожено - перехожено. У профи, может хватить одного взгляда, на определение проблемы.
4. (чего новички почти никогда не делают). Это уже не про данный случай, просто напутствие. НУ, ПРИВОДИТЕ СРЕДУ РАЗРАБОТКИ И ТО, ЧТО ОНА ВЫДАЁТ В ОТВЕТ НА НЕ ПРАВИЛЬНЫЙ КОД. НУБЫ, НУ ПОЖАЛЕЙТЕ СПЕЦОВ!!!!
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 24.07.2015 в 21:07.
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.07.2015, 21:18   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
if( n==0)//если пользователь ввел 0 ,бесконечный цикл зав.
break;
Наоборот:
Код:
if(!n)  break;
А еще лучше:
Код:
do{
    cout<<"введем число(кроме 0) "<<endl;
    cin>>n;
}while(!n);
...
Цитата:
НУБЫ, НУ ПОЖАЛЕЙТЕ СПЕЦОВ
Смитт, не поясничай )
А то сейчас начнутся жалобы, придется реагентом реагировать )))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.07.2015, 21:31   #4
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию

Stilet ,спасибо ! Не беспокойтесь жаловаться никто не будет.
sergei1960jabber.ru
Сергей.Ш вне форума Ответить с цитированием
Старый 24.07.2015, 21:37   #5
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

а цикл виснет наверно от того, что какие-то символы (типа конца строки) не сняты с cin.
поставь cin.ignore(10) после cin>>n. хотя смысла в этом цикле 0.

кстати, программа виснет, или не считает рандом от того что n всегда равно 0?

Последний раз редактировалось f.hump; 24.07.2015 в 22:30.
f.hump вне форума Ответить с цитированием
Старый 24.07.2015, 21:51   #6
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию

f.hump ,мне надо ,чтобы программа повторялась и повторялась до того момента пока не введется 0 . Вот этого условия не могу добиться.
sergei1960jabber.ru
Сергей.Ш вне форума Ответить с цитированием
Старый 24.07.2015, 21:59   #7
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
мне надо ,чтобы программа повторялась и повторялась до того момента пока не введется 0
это ясно.

повторяю вопрос
Цитата:
программа виснет, или не считает рандом от того что n всегда равно 0?
f.hump вне форума Ответить с цитированием
Старый 24.07.2015, 22:04   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию Не по теме.

Цитата:
Сообщение от Stilet Посмотреть сообщение
Наоборот:
А еще лучше:
Код:
do{
    cout<<"введем число(кроме 0) "<<endl;
    cin>>n;
}while(!n);
...
Смитт, не поясничай )
А то сейчас начнутся жалобы, придется реагентом реагировать )))
Не. Нуя на форуме с 2009-го года, а приходитс объяснять людям, что правила-то читать нужно. Не, я конечто перец ещё тот, но для того, что-бы тебя люди понимали, нужно их тоже понимать.

По-теме: В Цикле while, параметр имеет булево значение. Любое выражение, имеющее значение - true, означает продолжение цикла. Значение - false, его окончание. Есть и анологи вdода. 0 - false. Любое , отличное от нуля - true.
В данном примере, цикл будет выполняться, пока будет вводиться 0 .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.07.2015, 22:05   #9
Сергей.Ш
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 43
По умолчанию

f.hump ,программа выдает вот такой результат: введем число(кроме 0) 6

введем число(кроме 0) 5

введем число(кроме 0) 4

введем число(кроме 0)
sergei1960jabber.ru
Сергей.Ш вне форума Ответить с цитированием
Старый 24.07.2015, 22:13   #10
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

ну, я на это как бы и намекаю, что у тебя генерация раднома лежит за пределами цикла для n.
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
генератор случайных чисел Nicolas_46 Microsoft Office Excel 9 03.12.2012 14:35
Генератор случайных чисел remont_it, C++ Builder 1 12.05.2012 21:11
Генератор случайных чисел Костян Пират Общие вопросы Delphi 8 23.01.2011 22:08
Генератор случайных чисел Creativety Фриланс 10 27.12.2010 12:33
C++ генератор случайных чисел sir.andrey Помощь студентам 4 03.09.2010 12:22