如何让控制台一直提示用户输入,直到用户在 C 中输入一个正整数?
How do I make the console keep prompting the user for input until the user enters a positive integer in C?
#include <stdio.h>
#include <cs50.h>
int main(void)
{
printf("Give me the length of your shower in minutes: \n");
int x = GetInt();
int b = x*12;
if (x <= 0)
{
printf("Please give me a valid input.\n");
}
else
printf("In %i minutes you consumed %i bottles of water!\n", x, b);
}
这是我的算法代码,该算法需要几分钟的淋浴时间并将其转换为使用的瓶装水。
我试过用不同的方式写它,甚至使用 "scanf" 但没有任何效果。该代码工作正常,除了当用户输入零或负数时它只是在程序关闭之前打印 "That is not a positive integer." 。我需要它循环并从用户那里得到另一个输入,直到他们 return 一些积极的东西。我已经尝试了几个 do/while 和 for 循环,但我认为我做的不对。有人可以帮助菜鸟编码员吗?
重复代码需要"loop",c中有for
、while
、do while
。如:
while (true) {
x = GetInt();
if (x <= 0) {
printf("Please give me a valid input.\n");
} else {
// do something else
}
}
其中 "do something else" 也意味着离开循环 :p.
while (true) {
x = GetInt();
if (x <= 0) {
printf("Please give me a valid input.\n");
} else {
// do something else
// and leave
break;
}
}
以下将简单地重复提示,直到输入有效值,然后打印结果:
int main(void)
{
int x = 0 ;
do
{
printf( "Give me the length of your shower in minutes:\n" ) ;
x = GetInt() ;
} while( x <= 0 ) ;
int b = x * 12 ;
printf( "In %i minutes you consumed %i bottles of water!\n", x, b ) ;
return 0 ;
}
#include <stdio.h>
#include <cs50.h>
int main(void)
{
printf("Give me the length of your shower in minutes: \n");
int x = GetInt();
int b = x*12;
if (x <= 0)
{
printf("Please give me a valid input.\n");
}
else
printf("In %i minutes you consumed %i bottles of water!\n", x, b);
}
这是我的算法代码,该算法需要几分钟的淋浴时间并将其转换为使用的瓶装水。
我试过用不同的方式写它,甚至使用 "scanf" 但没有任何效果。该代码工作正常,除了当用户输入零或负数时它只是在程序关闭之前打印 "That is not a positive integer." 。我需要它循环并从用户那里得到另一个输入,直到他们 return 一些积极的东西。我已经尝试了几个 do/while 和 for 循环,但我认为我做的不对。有人可以帮助菜鸟编码员吗?
重复代码需要"loop",c中有for
、while
、do while
。如:
while (true) {
x = GetInt();
if (x <= 0) {
printf("Please give me a valid input.\n");
} else {
// do something else
}
}
其中 "do something else" 也意味着离开循环 :p.
while (true) {
x = GetInt();
if (x <= 0) {
printf("Please give me a valid input.\n");
} else {
// do something else
// and leave
break;
}
}
以下将简单地重复提示,直到输入有效值,然后打印结果:
int main(void)
{
int x = 0 ;
do
{
printf( "Give me the length of your shower in minutes:\n" ) ;
x = GetInt() ;
} while( x <= 0 ) ;
int b = x * 12 ;
printf( "In %i minutes you consumed %i bottles of water!\n", x, b ) ;
return 0 ;
}