while((player1chip==-1)||(player2chip==-1)||(player3chip==-1)){
player1chip=-1; player2chip=-1; player3chip=-1;
printf("How many chips would you like to play with (3-10):\n");
scanf("%d%d%d", &player1chip, &player2chip, &player3chip);
getchar();
}我想一次得到3个值,但循环似乎已经运行了3次…我该怎么做呢?
发布于 2012-09-27 09:37:32
int p1chip=-1, p2chip=-1, p3chip=-1;
do {
printf("How many chips would you like to play with (3-10)?\n");
scanf("%d%d%d", &p1chip, &p2chip, &p3chip);
} while ((p1chip == -1) || (p2chip == -1) || (p3chip == -1))试试看。
发布于 2012-09-27 13:14:43
scanf()语句对于您正在尝试做的事情有点奇怪,因为您说您需要使用"%d%d%d“没有分隔的三个数字。如果while循环的目的是填充playerchip变量,则应该对它们使用一个数组并迭代该数组,如下所示:
playerchip[3];
for(int i=0; i<3; i++) {
printf("How many chips would player %d like to play with (3-10)?:\n", i);
scanf("%d", &playerchip[i]);
}如果您保留您的命名方案,则不能使用循环轻松地填充变量。不过,为了回答您最初的问题,要一次获取多个数字,您需要在scanf()语句中使用一些分隔符:
scanf("%d %d %d", &a, &b, &c);这样,每个人都知道一个数字何时结束,另一个何时开始。
https://stackoverflow.com/questions/12612831
复制相似问题