2015-02-10 66 views
-3
#include <stdio.h> 

int main() 
{ 
    int num = 0, a; 

    printf("Enter a number to check if it is prime or composite:\n"); 

    scanf("%d", &num);    
    getchar(); 

    for(a = 2; a <= (num - 1); a++)  
    { 
     if((num % a) == 0) { 
      printf("Number is composite");  
      break;        
     } 
    } 

    if(num == a){ 
     printf("Number is prime"); 
    } 

    return 0; 
} 

根據上面的代碼a = 4和num = 5爲什麼這個代碼打印「數字是總理」,而「a」不等於「num」?關於c編程中的循環

+0

你的問題到底是什麼?另外,請使用縮進。 – 2015-02-10 19:35:50

+3

是什麼讓你覺得'a'是4? – sepp2k 2015-02-10 19:36:43

+2

'a ++'遞增'a',所以'a <= num-1'條件爲假(結論:'a == num')。翻譯:當'a <= num-1'條件爲假時循環停止。當'a == num'時會發生這種情況。 – Cornstalks 2015-02-10 19:37:16

回答

4

既然你在你for循環結束遞增a,一旦循環完成執行(假設num其實是在黃金),a將等於num,這意味着輸出「號是黃金」是正確的。