我想寫一些簡單的代碼來驗證數組中每個數字有多少個數字,但是我陷入了一些奇怪的行爲。C - while和for循環的奇怪行爲
來自陣列的前3個數字要麼在while
循環中評估爲false,這意味着(120/1)%10
等於0,這不應該是真的,或者其他方面是錯誤的。
你有什麼想法嗎?算法在陣列中的第三個數字之後按預期工作。
感謝您提前提出建議。
int main(){
int nums[SIZE] = {120,210,3,4375,54443};
int i;
for (i = 0; i < SIZE; ++i){
printf("Var i inside FOR: \t%d\n", i);
printf("Var nums i inside FOR: \t%d\n", nums[i]);
int wtest = 1;
printf("Var wtest inside FOR: \t\t%d\n\n", wtest);
while (((nums[i]/wtest)%10) != 0){
wtest = wtest * 10;
printf("Var wtest iside while: \t\t\t%d\n\n", wtest);
}
}
getchar();
return 0;
}
輸出:
Var i inside FOR: 0
Var nums i inside FOR: 120
Var wtest inside FOR: 1
Var i inside FOR: 1
Var nums i inside FOR: 210
Var wtest inside FOR: 1
Var i inside FOR: 2
Var nums i inside FOR: 3
Var wtest inside FOR: 1
Var wtest iside while: 10
Var i inside FOR: 3
Var nums i inside FOR: 4375
Var wtest inside FOR: 1
Var wtest iside while: 10
Var wtest iside while: 100
Var wtest iside while: 1000
Var wtest iside while: 10000
Var i inside FOR: 4
Var nums i inside FOR: 54443
Var wtest inside FOR: 1
Var wtest iside while: 10
Var wtest iside while: 100
Var wtest iside while: 1000
Var wtest iside while: 10000
Var wtest iside while: 100000
爲什麼'(120/1)%10)== 0'在你看來不是真的? –
什麼似乎是(120/1)%10的問題? – Eutherpy
這看起來對我來說是正確的,因此'120/10 = 12'因此'120%10 = 0' – DairyLea