2010-10-29 29 views
0

我有我的教授的代碼,它是關於找到豐富和有缺陷的數字。如果除x本身之外的所有整數除數的總和小於x,則數x是有效的。如果它大於x,那麼它很豐富。 沒有編譯錯誤,它似乎一切正常,但它只是不打印任何東西,它沒有得到任何結果。爲什麼?怎麼了?豐富 - 有缺陷的數字代碼不顯示結果

#include <stdio.h> 

int main(void) 
{ 
     int x=1,y=1; 
     int sum=0; 
     while(x<100) 
     { 
       while(y<x) 
       { 
         if(x%y==0) { 
           sum=sum+y; 
           y++; 
         } 
       } 
       x++; 
       sum=0; 
       y=1; 
     } 
     return 0; 
} 

如果你能幫助我在這裏,我將非常感激,在此先感謝。

回答

2

的問題是在這裏:

 while(y<x) 
     { 
       if(x%y==0) { 
         sum=sum+y; 
         y++; 
       } 
     } 

Ÿ應推進每一次迭代:

  while(y<x) 
      { 
        if(x%y==0) { 
          sum=sum+y; 
        } 
        y++; 
      } 
7

您的代碼沒有打印語句。您可能想要使用printf函數。

+2

+1爲察覺的明顯,我沒有:-) – pmg 2010-10-29 15:23:39

+0

作爲dark_charlie指出的那樣,你還希望確保通過在if外增加y來避免無限循環。 – 2010-10-29 15:27:32

+1

我笑了一下 – dfens 2010-10-29 15:31:15