我的程序,使一個隨機的名字,可能有AZ該代碼使得16字符的名稱,但 :(我的代碼不會讓名稱和IDK的爲什麼:(誰能告訴我有什麼錯呢?如何從隨機數字中創建一個名稱?
char name[16];
void make_random_name()
{
byte loop = -1;
for(;;)
{
loop++;
srand((unsigned)time(0));
int random_integer;
random_integer = (rand()%10)+1;
switch(random_integer)
{
case '1': name[loop] = 'A';
break;
case '2': name[loop] = 'B';
break;
case '3': name[loop] = 'C';
break;
case '4': name[loop] = 'D';
break;
case '5': name[loop] = 'E';
break;
case '6': name[loop] = 'F';
break;
case '7': name[loop] = 'G';
break;
case '8': name[loop] = 'Z';
break;
case '9': name[loop] = 'H';
break;
}
cout << name << "\n";
if(loop > 15)
{
break;
}
}
}
...笑的xD很好確定讓我來試試 – blood 2010-04-28 02:04:25
嗯以及它運行,但所有這些都是一個字符如H或Z:\ – blood 2010-04-28 02:06:41
@blood這可能是因爲您呼叫'內循環srand'。整個循環在'time(0)'改變之前運行,所以你每次都用相同的值播種RNG,每次得到相同的隨機數。還要注意'rand()%10 + 1'給出1到10之間的數字;您沒有在交換機中涵蓋所有這些情況。 – 2010-04-28 02:12:26