-4
所以我正在研究C編程中的Euler的Phi函數。一切似乎都很完美,直到我點擊這段代碼並崩潰。如何解決這個崩潰的C代碼?
while(a[i] != 0 || a[i]!= 1)
{
m=m*((a[i]-1)/a[i]);
i++;
}
在此代碼之前,程序,用戶輸入一個值,然後確定主要因素。
所以我正在研究C編程中的Euler的Phi函數。一切似乎都很完美,直到我點擊這段代碼並崩潰。如何解決這個崩潰的C代碼?
while(a[i] != 0 || a[i]!= 1)
{
m=m*((a[i]-1)/a[i]);
i++;
}
在此代碼之前,程序,用戶輸入一個值,然後確定主要因素。
a[i] != 0 || a[i] != 1
這始終是真實的,因爲許多不能同時0和1,您可能會遇到一個零除條件時,a[i]
爲零。
我猜你的意思是寫
a[i] != 0 && a[i] != 1
但因爲我看不到你的代碼的其餘部分,我不能確信這一點。但是,這種變化將避免零分。
你可能想在'i'大於數組的長度之前停下來。 – sje397 2014-09-27 22:39:02
陣列中有什麼?數組中是否嵌入了終止條件? – swtdrgn 2014-09-27 22:39:33
可能是'||' - >'&&'(因爲'a [i]!= 0 || a [i]!= 1'總是成立的) – BLUEPIXY 2014-09-27 22:40:45