Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Основы С

Автор: onlyY?!... 18.3.2009, 11:50

1) Вызывается функция random(10) 3 раза подряд. Необходимо чтобы она выводила 3 произвольных числа из 10 на экран без повторения

2)Есть файл с записанными туда 10 словами с новой строки. Нужна функция, которая произвольным образом выбирает из файла 3 слова и без повторения.


По поводу 1) - Подскажите как записать, чтобы выводимые числа никогда и никак не могли повторяться. И без сравнения каждого из них между собой.

По поводу 2) - Сперва вроде нужно считать 1 произвольное слово из файла. Повторим еще 2 раза считывание. а дальше как?

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

Автор: kaa 22.3.2009, 12:03

#include<stdlib.h> // в этом файле содержатся функции rand() и srand()
#include<time.h> // в этом файле содержится функция time()

srand(time(NULL));

потом пишешь то что тебе надо и rand ()%3
for(int i =0;i<10;i++ )
ну и потом if (условие чтоб не повторялось!)

Автор: onlyY?!... 27.3.2009, 10:19

Цитата(kaa @ 22.3.2009, 15:03) *

#include<stdlib.h> // в этом файле содержатся функции rand() и srand()
#include<time.h> // в этом файле содержится функция time()

srand(time(NULL));

потом пишешь то что тебе надо и rand ()%3
for(int i =0;i<10;i++ )
ну и потом if (условие чтоб не повторялось!)


Спс. Все кроме srand(time(NULL)); я знаю, у меня проблема что после проверки условия через while и if все равно происходит повторение выведенного числа с вероятностью около 20 процентов. А необходимо чтобы вообще не повторялись.

Автор: kaa 27.3.2009, 10:41

onlyY?!...
еще можно те числа которые попадались записывать во временную переменную и опять в if проверять и после конца while их стереть)

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)