虽然循环只发生一次

Ana*_*etz -2 c while-loop do-while

我的while循环只发生一次,而我需要多次检查以确保小时输入为24小时.我做错了什么?我知道可能是某些东西,但我一直在玩它,我仍然只有一次while循环.

#include <stdio.h>
#include <time.h>

int main(int argc, char *argv[])
{
    int h=0;
    int m=0;
    int d=0;
    int ht=0;
    int t=0;

    printf("Starting Hour: ");

    do
    {
        scanf("%d", &h);
    }
    while (h > 0 && h < 24);

    printf ("Invalid input. Please use 24hr format\n");
    printf ("Starting Hour: ");
    scanf("%d",&h);

    printf("Starting Minute: ");
    scanf("%d",&m);
    printf("Starting Time is %d:%d, what is the duration? ", h, m);
    scanf("%d",&d);
    t=(m+d);
    ht=t/60;
    h=(h+ht)%24;
    m=t%60;

    printf("Ending Time: %d:%d",h,m);
    printf("\n");

    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ido*_*dos 7

如果您想在用户提供无效输入时继续询问输入,则需要检查:

while (h < 0 || h >= 24);
Run Code Online (Sandbox Code Playgroud)

就像现在一样,你while只能执行一次,因为输入是有效的并且符合模式h > 0 && h < 24.