2012-05-18 29 views
-3

你能告訴我下一個代碼有什麼問題嗎?我得到消息: 警告:忽略'scanf'的返回值,用屬性warn_unused_result [-Wunused-result]聲明。不友好的號碼C

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

int main() 
{ 
    long long int n, k, i, *a, j, w = 0, nije = 1; 

     scanf("%lld", &n); 

     scanf("%lld", &k); 

    a = malloc(n*sizeof(long long int)); 

    for (i = 0; i < n; i++) 
     scanf("%lld", &a[i]); 

    for (j = 2; j <= k; j++) { 

     if (k % j == 0) 
     { 

      nije = 1; 
      for (i = 0; i < n; i++) { 

          if (a[i] % j == 0) { 

        nije = 0; 
        break; 
       } 
      } 
      if (nije == 1) 
         w++; 

     } 
    } 
    a = NULL; 
     printf("%lld", w); 
    return 0; 
} 
+3

'main'返回'int',* not *'long long int'。你的第二行應該是'int main(void)' –

+2

'long long int main()'順便說一句,不需要每個平臺都支持。唯一保證的簽名是'int main(void)'和'int main(int,char **)'或者等價的。 –

+4

您的變量名稱對於我作爲程序員的敏感性來說是一種冒犯。 –

回答

4

至少你忘了初始化w爲零,因此它的值可以等於任何數量和b[w]第一次調用導致分段錯誤。