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)
如果您想在用户提供无效输入时继续询问输入,则需要检查:
while (h < 0 || h >= 24);
Run Code Online (Sandbox Code Playgroud)
就像现在一样,你while
只能执行一次,因为输入是有效的并且符合模式h > 0 && h < 24
.