2012-08-15 242 views
0

我正在做一個簡單的程序,從輸入的ID中獲取用戶餘額。出於某種原因,被輸入從所述listof_ID陣列的ID時for循環不執行:爲什麼不執行此循環?

#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    int cntr; 
    int ID; 

    int listof_ID[] = {001, 002, 003, 004, 005}; 
    float listof_BAL[] = {338.90, 745.87, 897.32, 665.36, 102.45}; 

    puts("**Check Your Balance** \n"); 
    printf("**Please Enter Your ID >> "); 
    scanf("%d", &ID); 
    for(cntr = 0; cntr > 5; cntr++) 
    { 
     if(ID == listof_ID[cntr]) 
     { 
      puts("Your balance is "); 
      printf("%.2f", listof_BAL[cntr]); 
      break; 
     } 
    } 

    return 0; 
} 
+5

cntr> 5將不會發生,因爲它被初始化爲0 – squiguy 2012-08-15 20:36:58

+5

您是否意識到您正在使用八進制文字初始化listof_ID []?在這種情況下,這並不重要,但仍然看起來好像你可能沒有意識到這一點。 – 2012-08-15 20:38:32

+0

@EdS。我不確定是否是這種情況,因爲數字前面是兩個零而不是通常的零。 – TheZ 2012-08-15 20:40:21

回答

7
for(cntr = 0; cntr > 5; cntr++) 

應該是

for(cntr = 0; cntr < 5; cntr++) 

循環執行,而條件cntr > 5是真實的。如果cntr開始於0那麼它顯然不會大於5,所以循環的主體從不執行。

0

在您的for循環中,cntr = 0的第一個值,這意味着cntr < 5.但是在這種情況下,您正在檢查cntr> 5,這是不正確的。所以,循環不啓動。