❶ C語言死循環怎麼辦
先關了死循環的程序,在把改程序修改,主要是要找到循環的終止條件,找出要滿足你程序的一個條件,把它卸載循環內的話,用if 語句判斷之後,滿足你的限制條件之後,用 break,跳出循環,如果是用 for 循環,可以再循環的時候就設置循環的終止條件,for(AAA;BBB;CCC), 中的 表達式 BBB ,就是循環的終止條件;當然,在 for 循環中,可以省略表達式 BBB ;即 for(AAA; ; CCC) 並在循環體內,同樣,用 條件判斷,break跳出循環,總之,最主要的是,在你這個循環體內,要找出滿足你程序的某些條件,用它來作為循環的限制條件。如:要找出1~100 之間的素數,那有一個限制條件就是 for(Int i=2,i<=100; i++) 其中的i<=100就是限制條件啦!^_^
❷ c語言陷入死循環,應該怎麼改呢拜託拜託,求大佬解答
1、DateCheck()函數是否處理有問題
2、輸入要英文模式下數字,
3、單步驟調試一下
❸ C語言程序 進入 死循環了 但是不知道 原因 望賜教,不勝感激。
可以設置循環計數變數
為了防止程序出現死循環,最好的辦法當然是自習檢查程序,保證邏輯正確就好了。如果不放心可以設置循環計數變數,嵌入循環,當溢出上限時停止程序並報錯即可。
測試下面的代碼
#include<stdio.h>
#include<string.h>
int main()
{
char a[81];
int i=0,j=0;
while ((a[i]=getchar())!='\n')
i++;
a[i]='\0';
printf("%d %d \n %s\n",i,j,a);
while (a[j]=='0'&&a[j+1]!='\0')
j++;
printf("%d %d \n %s\n",i,j,a);
if (j!=0)
for (i=0;i<=(strlen(a)-j);i++)/*不建議這樣寫i<=(strlen(a)-j),
因為這是個動態的字元串,最好先求出字元串的長度在放進去,
二來更有效率,不用每次都計算字元串的長度*/
a[i]=a[i+j];
printf("%d %d \n %s",i,j,a);
fflush(stdin);//清除緩沖
getchar();
return 0;
}
❹ C語言死循環如何退出
對於死循環程序,只能強制退出。
1、控制台程序中的死循環程序,一般按CTRL+C直接中斷程序即可。比如下面的死循環控制台程序。
intmain()
{
while(1);;
return0;
}
按CTRL+C即可中斷程序。在控制台下會顯示為^C。
2、圖形界面中的死循環程序,可以使用進程管理工具來強制結束,比如windows上的任務管理器。當然控制台死循環程序,也可以使用此種方法結束。以win7為例,在任務欄上右鍵,在彈出菜單中選擇「任務管理器」。
在任務管理器中找到要結束的進程,右鍵選擇「結束進程」即可。
❺ C語言中死循環怎麼做
在C語言的循環中,無論是何種循環結構,都會在循環中指明退出條件,這個條件會是一個邏輯運算表達式。 要做死循環,只需把對應的退出條件置為恆為真即可。
例:
for循環。
for循環的判斷條件,是for後面括弧中的第二條語句。由於for的特殊性,以下兩種方式,均可以構建死循環。
(1) for(expr1; 1; expr2)
{
//循環體
}
判斷條件處寫為1, 代表恆為真,與1中while的類似。
(2) for(expr1; ; expr2)
由於for允許括弧中的三個表達式為空,所以判斷部分留空,同樣達到死循環的效果。
(5)當c語言編譯進入死循環該怎麼辦擴展閱讀
C語言中死循環的解決方法:
首先應該將對應的退出條件置為恆為真,然後按照「for循環 」「while循環」「do-while循環」三個循環模式分別描述。
在這個過程中,要注意管理好循環控制變數,使while 的條件有機會為FALSE,或在循環體中加入break,並使它有機會執行。
還可以設置循環計數變數。為了防止程序出現死循環,最好是自習檢查程序,保證邏輯正確。需要說明的是,死循環盡量少用。如果一定要用死循環,也要在循環體內設置退出條件(break)。
❻ C語言進入死循環了怎麼退出
ctrl+alt+delete鍵打開任務管理器
找到VC或者VS的客戶端直接結束就好,看不懂英文描述的看圖標也能看出來
❼ C語言死循環怎麼回去啊
先請大家看這么一個簡單的小程序:
#include <stdio.h>
void main()
{
int i, b[10];
for ( i = 0; i <= 10; i++ )
{
b[i] = 0;
}
}
請問這個程序是否有錯?A.正常 B.越界 C.死循環
正確答案是C,相信選A或選B的朋友一定會很納悶。事實上我也是如此,單單從程序的表面上看,按定義這應該是個越界,因為當循環進行到i == 10的時候,程序將試圖將b[10]賦值為0,而C語言中,b[10]的聲明就是指定b[0]~b[9]可用。
然而程序的結果你看到了,這是個死循環無疑。
也好,那麼讓匯編來告訴你——以及我——這一切的真相吧,在這之前請你把i和b[10]的定義改成:
int i = 0, b[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
然後,將這個程序反匯編,可以得到:
http://www.fpvision.com.cn/uploadImages/2007-5-2/2007522226275383.jpg
讓我來解釋一下這段匯編代碼的含義吧。在系統的實現中,i和數組b[10]是分配在棧上的變數,在內存中的分布如下圖:
http://www.fpvision.com.cn/uploadImages/2007-5-2/2007522226275058.gif
現在你看到了,i所佔據的正是b[10]的位置,而b[10] = 0;這一句會被這樣運行:
*(&b[0] + 10) = 0;
所以這一句的結果,就是把0賦值給i。這樣一來在第11次循環的時候,i將會被重新置為0,那麼循環結束的條件也就永遠不會滿足了,循環也就是個死循環了。
❽ c語言死循環導致cpu飆高怎麼處理
首先應該將對應的退出條件置為恆為真,然後按照「while循環」「for循環」「do-while循環」三個循環模式分別描述。
在這個過程中,還要注意管理好循環控制變數,使while的條件有機會為FALSE,或在循環體中加入break,並使它有機會執行。另外,也可以設置循環計數變數。為了防止程序出現死循環,最好是自習檢查程序,保證邏輯正確。
如果不放心的話,可以設置循環計數變數,嵌入循環,當溢出上限時停止程序並報錯。需要說明的是,死循環盡量少用。如果一定要用死循環,也要在循環體內設置退出條件(break)。
主要特點
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
❾ 在C語言里,正在執行的死循環怎麼跳出
1、C語言中,強制終止死循環可以用CTRL+BREAK組合鍵或者CTRL+C組合鍵。
2、命令解釋:
CTRL+BREAK 設置或清除 DOS 系統的擴展。CTRL+C 檢測這個命令是為了與 DOS 系統的兼容而保留的,在 Windows里不起作用。如果命令擴展被啟用,並且操作平台是Windows,BREAK 命令會在被調試程序調試時輸入一個硬代碼中斷點。
通過CTRL+BREAK組合鍵或者CTRL+C組合鍵能夠實現中斷死循環。
❿ C語言,運行程序後,死循環了,如何跳出死循環
這要看你用的環境,一般可以狂按Ctrl+C或者ESC試試能不能退出,不行的話就關掉你程序的運行窗口了。