我想知道你是否可以帮助我,我正在尝试制作一个彩票游戏,数字为 1-42,并且都是独一无二的。这是我到目前为止所拥有的:
do
{
printf("\n\t\tPlease enter number %d (1-42):", i+1);
scanf("%d", &temp);
if(temp > 0 && temp < 43)
{
for(j = 0; j > 6; j++)
{
if(temp == lottoNumbers[j])
{
printf("\n\n\t\tNumber already chosen, please choose a new number.\a");
}
else
lottoNumbers[i] = temp;
i++;
}
}
else
printf("\n\n\t\tPlease enter a valid number.\a");
}while(i < 6);
所以我想将第一个值作为常规整数,首先测试它是否在范围内(有效),然后检查它是否已经是数组的元素,如果是,则将其放入数组中并增加 i,问题是它似乎永远不会增加 i,只是一遍又一遍地重复......似乎无法弄清楚为什么,有什么想法吗?
最佳答案
试试这个
if(temp > 0 && temp < 43)
{
for(j = 0; j < i ; j++)
{
if(temp == lottoNumbers[j])
{
printf("\n\n\t\tNumber already chosen, please choose a new number.\a");
break;
}
}
if(i == 0 || i == j){//just if(i == j)
lottoNumbers[i++] = temp;
}
}
else
printf("\n\n\t\tPlease enter a valid number.\a");
关于c - 彩票游戏,从 1 到 42 中选择唯一的号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589040/