2014-09-06 38 views
1
#include<stdio.h> 
#include<conio.h> 

/* Function Declaration 
int pal(int x); */ 
/*Declaring Second Function*/ 

int rev(int x); 

int main() 
{ 
    int a, b, c; 
    clrscr(); 

    printf("Enter The Number Which You Want To Check Is Palindrome Or Not\n"); 
    scanf("%d", &a); 

    b = rev(a); 
    printf("%d", b); 

    if(b == a) { 
     printf("%d Is A Palindrome Number", a); 
    } else { 
     printf("%d Isn't A Plaindrome Number", a); 
    } 

    getch(); 
    return(0); 
} 

int rev(int x) 
{ 
    int d = 0; 

    while(x) { 
     d = d * 10 + x % 10; 
     x = x/10; 
    } 
    return(d); 
} 

我沒有得到使用while(x)聲明。我的意思是,我們在while循環中附加了一些條件,即while(x!=0),那麼獨立while(x)是什麼意思。使用just while(x)

回答

6

while (x)相同while (x != 0)

對於一個組成數據類型,0是false &一切是true。所以while (x)將評估爲while(true)所有x != 0

同樣,你也會遇到這樣的表達式while(!x)if(!x)

如果x有值不爲零,則xtrue & !xfalse。 如果x具有值0,則xfalse & !xtrue

所以寫(!x)是一樣的書寫(x == 0)

你還會看到類似的使用與指針。對於指針p,(p)(p != NULL)相同,並且(!p)(p == NULL)相同。