我想要計數在0和1的數組中發生的0的數量。如果數組的一半是0,我保留它。如果不是,我改變它。爲了方便起見,我開始計算第二位數(索引1)。我不關心索引0,不計算它。我不知道爲什麼我得到這個無限循環..難道是在不知道爲什麼這將返回一個無限循環
if (z == 4){
g = 1;
}
#include "stdlib.h"
#include "stdio.h"
int main(){
int i, j, z, g;
z = 0;
int ar[9] = {0,0,0,0,0,0,0,0,0};
g = 0;
while(!g){
for(i = 1; i < 9; i++){
printf("%d", ar[i]);
if (ar[i] == 0){
z++;
}
}
if (z == 4){
g = 1;
}
else {
for (i = 1; i < 5; i++){
ar[i] = 0;
}
for (i = 5; i < 9; i++){
ar[i] = 1;
}
}
}
printf("\n %d", z);
return 0;
}
'其他{' - >'否則{Z = 0;' – BLUEPIXY
不會照顧這個問題嗎?如果else語句有效,它將是4 .. – shoestringfries
不,因爲如果z!= 4,你進入for循環,但是z已經大於4,所以你永遠不會達到(g = 1) – CIsForCookies