Как выбрать случайный случай в выражении switch - PullRequest
0 голосов
/ 02 августа 2011

Я хочу вывести несколько вопросов, но в случайном порядке. Как я могу задать все вопросы случайным образом, не повторяя один?

for(int i=0; i<4; i++)
{
    int question=rand()%4;
    switch(question)
    {
        case 0:
            NSLog(@"What is your name");
            break;
        case 1:
            NSLog(@"Who are you");
            break;
        case 2:
            NSLog(@"What is your name");
            break;
        case 3:
            NSLog(@"How do you do");
            break;
        case 4:
            NSLog(@"Are you?");
            break;
    }
}

Ответы [ 3 ]

5 голосов
/ 02 августа 2011

Храните вопросы в массиве.Перемешать массив в начале допроса.Теперь вытяните один вопрос из списка за одну итерацию, задайте его, получите ответ и продолжайте, пока у вас не закончится вопрос.

4 голосов
/ 02 августа 2011

rand(3) довольно известен тем, что имеет плохие реализации, которые имеют довольно короткие циклы для младших битов. Попробуйте использовать другие биты или используйте random(3). На самом деле, rand(3) справочная страница в OS X гласит:

Эти интерфейсы устарели random(3).

Также - % 4 никогда не может быть больше 3, поэтому ваш case 4 никогда не будет выполняться в этой программе.

1 голос
/ 02 августа 2011

Рекомендуется использовать arc4random() для лучшего алгоритма без необходимости заполнения.В противном случае позвоните на номер srand, чтобы набрать номер rand.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...