2014-02-13 26 views
-7

我試圖讓使用簡單的邏輯迴文程序,但不幸我不能得到的輸出被鍵入Printf("This is palindrome")Palidrome程序沒有workig

#include<stdio.h> 
int main(void) 
{ 
    int a,b,c,d,e,f; 

    printf("enter the 5 digit of palindrome"); 

    scanf("%d%d%d%d%d",&a,&b,&c,&d,&e,&f); 

    if(a==f && b==e && c==d) 
    { 
     printf("Its a Palindrome"); 
    } 
    else if(a!=f || b!=e || c!=d){ 

     printf("its a palindrome"); 

    } 

getchar(); 

    return 0; 
    } 
+1

我建議你閱讀一個字符串,而不是試圖以數字讀取單個數字。 – BoBTFish

+1

有兩份案文說:「它是一種迴文」,和OP尋求「這是一個迴文」。不確定預期的是什麼。另外從我記得De Morgan先生記得,第二個'如果'是還原劑。 – luk32

+0

你兩個printf語句相同..請檢查 –

回答

3
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e,&f); 

你應該有另一個%d那裏。否則f包含垃圾值,它永遠不會等於a

我建議你重新考慮你的代碼,寫的東西比較一般,就像讀一字符串,而不是個人int S的。

+0

是的男人;它大致工作..但它做錯了方式「如果我鍵入55555然後它的印刷」它不是一個palidrome,這是與我的邏輯相沖突。 – user3285610

+1

@ user3285610因爲您只輸入了5個「int」。檢查你的狀況。 – Maroun

+0

改變你的第一個printf語句 的printf(「請輸入6位數字迴文」); – vathsa

2

有幾件事情你的代碼錯誤:

  • 調用scanf()的5 %d,但經過6個參數在else(你缺少一個%d
  • 您的病情分支是多餘的;您已經知道至少有一對(a,f),(b,e),(c,d)在您的其他分支中不包含兩個相等的值
  • ,您有printf("its a palindrome"),而它明顯是是不是迴文
0
else if(a!=f || b!=e || c!=d){ 
    printf("its a palindrome"); 
} 

如果第一個和最後一個數字不等於那麼不是迴文。

1
#include <stdio.h> 

int main(void){ 
    int a,b,c,d,e; 

    printf("enter the 5 digit of palindrome :"); 
    scanf("%1d%1d%1d%1d%1d",&a,&b,&c,&d,&e); 

    if(a==e && b==d) 
     printf("it's a palindrome"); 
    else 
     printf("it's not a palindrome"); 

    getchar(); 

    return 0; 
}