您好我正在編寫一個程序,該程序將生成10個隨機字符,以形成一個單詞(這是一個遊戲)。生成10個隨機字符
所以這裏是我的功能:
void GenerateTen(int number)
{
int i;
char abc[30]="abcdefghijklmnopqrstuvwxyz";
char newabc[8];
for (i = 0; i < number; ++i) {
newabc[i] = abc[rand() % (sizeof(abc) - 1)];
printf("%c ", newabc[i]);
}
newabc[number] = 0;
}
數量變量包含10和輸出應該是簡單地在陣列中打印這些10個字符。編譯器沒有錯誤,但程序會生成相同的一組字符。感謝您的幫助! :-)
程序生成相同的字符集 - 這是什麼意思?這裏的實際問題是什麼? –
它應該隨機生成不同的集合 – Erail
您真的想在循環前使用'newabc [i] = abc [rand()%strlen(abc)]'爲了效率,預計算:'len = strlen(abc) i] = abc [rand()%len]'。 'sizeof'會在某些點注入0x00。而且,如果你得到相同的數字,你可能想要查看'srand'函數(例如'srand(time(NULL));''main''是通常的方式) –