我应该做一个多次播放的骰子游戏。我不是在寻找答案,有点想看看我做错了什么。我希望for循环为int i赋值为0,然后运行骰子卷,然后将一个添加到 i ,直到 i 为> 50.提前致谢。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
int rollDie1, rollDie2, keyValue = 0, win = 0, lose = 0, reroll = 0, i;
srand(time(NULL)); // call this only once – seed the random generator
for (i = 0 ; i < 50 ; i++);
{
rollDie1 = rand() % 6 + 1; // in the range of 1 - 6
rollDie2 = rand() % 6 + 1; // in the range of 1 - 6
keyValue = rollDie1 + rollDie2;
if ( keyValue == 7 || keyValue == 11 )
{
printf ("Player wins on the first roll \n");
}
if ( keyValue == 2 || keyValue == 3 || keyValue == 12 )
{
printf("Sorry, you lost on the first roll \n");
}
if ( keyValue == 4 || keyValue == 5 || keyValue == 6 || keyValue == 8 || keyValue == 9 || keyValue == 10 )
{
printf("Reroll! \n");
}
}
system("pause");
}
答案 0 :(得分:6)
在for循环的末尾有一个;
,不应该在那里。
for (i = 0 ; i < 50 ; i++);
应该是
for (i = 0 ; i < 50 ; i++)
否则for循环中没有任何内容,{}
中的内容只会被执行一次,因为这是一个单独的语句。
答案 1 :(得分:3)
循环结束时你有一个分号:
for (i = 0 ; i < 50 ; i++);
所以它什么都不做50次。您只需删除分号,以便括号{}
实际封装代码中应该位于for循环中的行。
如果你在for循环之后没有一个开括号{
,那么for循环之后的第一个完整语句将在每次迭代时执行。分号是一个完整的语句,什么都不做。
答案 2 :(得分:0)
实际上,只要i <50(从0到49
),它就会运行