2015-12-26 2 views
-1

Так что в предыдущем потоке я не совсем понял эту проблему, и я опубликовал много кода.Заполнение 2D-массива случайными буквами - Программирование на C

Я совершенно не знаком с C Progamming, и я столкнулся с некоторыми проблемами.

Я пытаюсь создать поиск Word, однако я столкнулся с проблемой.

Я пытаюсь заполнить поиск слова сетки (2D-массив) со случайными одиночными символами) (символы, такие как A, B, C, D, E ...)

Я пытаюсь использовать функция rand(), однако я не могу заставить ее заполнить весь 2D-массив. Когда я пытаюсь, я могу получить его, чтобы заполнить первый слот.

Это код, где он заполняет головоломку. На данный момент я наполнился «.».

void createBlankPuzzle() 
{ 
    int i , j; 

    for(i = 0;i < ROWS;i++) 
    { 
     for(j = 0;j < COLUMNS;j++) 
     { 
      puzzle[i][j] = '.'; 
     } 
    } 
} 

Я пытаюсь создать случайный характер с функцией rand().

char getRandomCharacter() 
{ 
    int rl = (rand() % 26) + 65; 

    return (char)rl; 
} 

Я надеюсь, что это достаточно ясно, и я попытался использовать хорошее форматирование.

+0

Я не вижу код, используя функцию 'srand' здесь. – MikeCAT

+0

Непонятно, что вы на самом деле спрашиваете здесь, и ваш код не делает то, что вы описываете. Вы говорите * «... я не могу заставить его заполнить весь 2D-массив. Когда я пытаюсь, я могу получить его, чтобы заполнить первый слот». *, Но вы, кажется, не размещали никаких код, который даже пытается это сделать - вместо этого просто код, который заполняет массив '.'. Если у вас есть код, который не работает так, как вы ожидаете, * опубликуйте, что * = мы не можем помочь, если вы публикуете код, нерешенный на ваш вопрос! – Clifford

ответ

1

Как просто назначить случайные символы для каждого элемента?

/* assuming you are using ASCII code */ 
char getRandomCharacter(void) 
{ 
    int rl = (rand() % 26) + 'A'; 
    return (char)rl; 
} 

void createBlankPuzzle(void) 
{ 
    int i, j; 

    for(i = 0;i < ROWS;i++) 
    { 
     for(j = 0;j < COLUMNS;j++) 
     { 
      puzzle[i][j] = getRandomCharacter(); 
     } 
    } 

} 
+0

Прежде всего спасибо за ответ, что он отлично работает сейчас. Кажется, я использовал ранд, а не шран. Однако я попробовал ваш код перед рукой, но это не сработало. Я пробовал их вот так: void createBlankPuzzle() Не возражаете, если вы объясните разницу и почему это не сработало? – Takari

+0

«Я пробовал их так: void createBlankPuzzle()« что это значит? Вы имеете в виду, что вы написали только декларацию функции и не называли ее? – MikeCAT

+0

Я не знаком с фразами кодирования. Код был точно таким же, как у вас, но я не помещал пустоты между скобками. Я оставил скобки пустыми, как это(). – Takari