只保存C数组的最后一个元素

-1 c

我对C很陌生,而且我正在讨论我们在课堂上做的一些事情.但我遇到了一个问题:

srand(time(NULL));
for (counter = 0; counter < 7; counter = counter + 1);
{
    stats[counter] = abs(rand() % max); 
}
Run Code Online (Sandbox Code Playgroud)

然而,当我去打印这些元素时,只有最后一个元素才有意义,其他一切都是 -858993460

printf("Health:                 %d\n", stats[0]);
printf("Armor:                  %d\n", stats[1]);
printf("Damage:                 %d\n", stats[2]);
printf("Critical Strike Shance: %d\n", stats[3]);
printf("Critical Strike Damage: %d\n", stats[4]);
printf("Dexterity:              %d\n", stats[5]);
printf("Strength:               %d\n", stats[6]);
printf("Luck:                   %d\n", stats[7]);
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

谢谢!

Mik*_*ike 9

你的for循环行的末尾有一个分号.

for (counter = 0; counter < 7; counter = counter + 1);
                                                     ^^^^
Run Code Online (Sandbox Code Playgroud)

这使得后面的块只执行一次.因为它不在for循环中.

  • 哇!好眼睛!并且只有"最后一个"被填充,因为在循环退出之后`counter`是7*.@Wintermute请注意,计数器将*从不*在循环内*7*. (2认同)