[英]How can I stop an infinite loop after every 1000 values?
/ *我想查看short int的最大值。我只想使用循環來查看它,所以我創建了一個無限循環。問題是我想停止循環以查看每1000個值之后的值。僅當循環達到1000時才停止,因為我已經讓它停止使用if條件,那么它永遠也不會停止。我該怎么做,以便每1000個值后停止。程序如下所示* /
#include<stdio.h>
#include<conio.h>
void main()
{
//Short int is declared intentionally
short int d=0;
char i;
//Infinite loop is created intentionally
for(d=0; ;d++)
{
//printing value
printf("\n%d",d);
//stopping a loop when value reaches 1000
if(d==1000)
{
//continuing after pressing a character after 1000
printf("\n press i to continue");
scanf("%d",&i);
continue;
}
}
//see the output
getch();
}
您使用錯誤的格式說明符來掃描char
值。 它調用未定義的行為 。 你應該改變
scanf("%d",&i);
至
scanf(" %c",&i);
也就是說,要在每 1000次迭代中停止,您需要將if(d==1000)
更改為if( (d % 1000) == 0)
。
FWIW,
void main()
應該至少是int main(void)
,以符合標准。 <limits.h>
檢查范圍(如果有)。 您只需按以下方式檢查條件
非常重要的一點是,您必須將其與零進行比較,然后才能正常工作。
if( (d%1000 == 0)
{
//continuing after pressing a character after 1000
printf("\n press i to continue");
scanf("%c",&i);
continue;
}
希望這可以幫助
你需要改變
if(d==1000)
至
if!(d%1000)
每1000個值后,循環將停止。
#include<stdio.h>
#include<conio.h>
void main()
{
//Short int is declared intentionally
short int d=0;
char i;
//Infinite loop is created intentionally
for(d=0; ;d++)
{
//printing value
printf("\n%d",d);
//stopping a loop when value reaches 1000
if(d%1000 == 0 && d != 0)
{
//continuing after pressing a character after 1000
printf("\n press any key to continue...");
scanf("%c",&i);
continue;
}
}
//see the output
getch();
}
並且您使用了錯誤的格式說明符( 請參閱 )。 %c
用於單個字符。 scanf("%d",&i);
該語句應為scanf("%c",&i);
。 並且條件將是if(d%1000 == 0 && d != 0)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.