在用户在C中输入正整数之前,如何让控制台继续提示用户输入?

时间:2016-06-19 07:05:07

标签: c cs50

#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”,但没有任何效果。代码工作正常,但是当用户输入零或负数的东西时,它只打印“那不是正整数”。在程序关闭之前。我需要它循环回来并获得用户的另一个输入,直到他们返回正面的东西。我已经尝试了几个do / while和for循环,但我不认为我做得对。有人可以帮一个新手编码器吗?

3 个答案:

答案 0 :(得分:1)

“做其他事”意味着离开循环:p。

npm install --save @angular/core @angular/compiler @angular/common @angular/platform-browser @angular/platform-browser-dynamic rxjs@5.0.0-beta.6 zone.js@0.6.12

答案 1 :(得分:0)

你需要&#34;循环&#34;重复代码,在c中,有forwhiledo while。如:

while (true) {
    x = GetInt();
    if (x <= 0) {
        printf("Please give me a valid input.\n");
    } else {
        // do something else
    }
}

答案 2 :(得分:0)

以下将只是重复提示,直到输入有效值,然后打印结果:

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 ;
}