-4

重複の可能性:
いつでもループを終了する

申し訳ありませんが、別の問題があります。「time_t end = time(0) + 1;」を変更すると、to 'time_t end = time(0) + 5;'... その後、私のプログラムはすぐにループを終了せず、5 秒後に終了します。ループをすぐに終了するように変更するにはどうすればよいですか? 1 分だとしましょう。なぜなら、私はプログラムを作成しているので、いつでもループを終了して払い戻しを請求できるパーキング メーターです。以下のコードへの参照:

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

int main(void)
{
    int b=0, i;
    int seconds;
    printf("\nEnter number of seconds : ");
    scanf("%d", &seconds);
    while (b==0)
    {
        b=kbhit();
        for(i=1;i<=seconds;i++)
        {
            while (b==0)
            {
                b=kbhit();
                time_t end = time(0) + 5; //5 seconds delay.
                while(time(0) < end)
                {
                    b=kbhit();
                }
                seconds -= 5;
                printf("Number of seconds left : %d\n", seconds);
                b=kbhit();  
            }
        }
        if(seconds == 0)
        {
            exit(0);
        }
        b=kbhit();
    }
    printf("Number of remaining seconds left : %d\n", seconds);
}
4

1 に答える 1

0

a を使用することbreakは、ループを終了するためのより良い解決策です

于 2012-11-24T13:54:18.463 に答える