- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要使用 for 循环来结束程序。但是,我不确定应该将 for 循环放在哪里。 for 循环应该在三个增量后结束程序,每次赋值它必须是一个 for 循环。
本来我觉得for应该放在程序的开头。然而,这会使用户运行该程序 3 次然后结束。
然后,我打算将 for 循环放在数据验证 while 循环中,在第一个 if 语句之前。然而,这需要用户在结束循环之前输入正确的数字 3 次。
我尝试添加一些 if 语句来检查增量 i 何时为 3,如果是,它将中断;到下一个语句。然而,这只会导致“恭喜!”每次输入后弹出消息。
不太确定该循环的其他位置。贴出的是我原来的猜号游戏。
int main()
{
char userInput = 'Y';
int number, guess, i;
srand(time(NULL));
number = rand() % 20 + 1;
printf("I am thinking of a number between 1 and 20.\n");
printf("Can you guess what it is?\n");
scanf("%d", &guess);
for (i = 0; i = 3 || guess == number; i++)
{
printf("%d\n", i);
if (guess > number)
printf("Your guess is too high.\n\n");
else if (guess < number)
printf("Your guess is too low.\n\n");
printf("Please enter another guess. ");
scanf("%d", &guess);
}
printf("Congratulations! You have guessed correctly.\n");
printf("The number was %d\n", number);
return 0;
}
在创建 for 循环时,我会使用 for (i = 0; i != 3;++i)。我希望用户能够猜出正确的数字 3 次,如果他们无法猜到这个数字,程序将以“抱歉,没有猜到这个数字”结束。请随意提出可读性改进建议,我的教授没有教我们正确使用空白。
编辑:重组,因为我意识到 while 循环可能不是必需的,如果我可以将循环递增 3 次并结束程序,或者在达到次数时结束程序。
最佳答案
while 循环是多余的
您可以在一个循环中执行此操作,也可以在循环开始时将调用移至 scanf
,这样您就不必事先手动重复它。
Working example here on repl.it
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_ATTEMPTS 3
int main() {
int number, guess, i;
srand(time(NULL));
number = rand() % 20 + 1;
printf("I am thinking of a number between 1 and 20.\n");
printf("Can you guess what it is?\n");
for (i = 0; i < MAX_ATTEMPTS; i++) {
scanf("%d", &guess);
if (guess > number)
printf("Your guess is too high.\n\n");
else if (guess < number) {
printf("Your guess is too low.\n\n");
} else {
break;
}
if (i < MAX_ATTEMPTS - 1) {
printf("Please enter another guess. ");
}
}
if (guess == number) {
printf("\nCongratulations! You have guessed correctly.\n");
printf("The number was %d\n", number);
} else {
printf("\nSorry, the number was not guessed.\n");
}
return 0;
}
关于c - 尝试让猜号程序在猜完 3 次后结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384839/
我们面临一个用例,我们需要在 S3 上存储用户的 secret 图像。现在 S3 可以通过 HTTP 访问,如果我们授予对对象的读取权限,它们将通过 Web 提供给全世界。我们需要将图像/文件仅限于该
我是一名优秀的程序员,十分优秀!