2014-02-13 5 views
-7

workig하지 않고, 불행한 나는 당신이 다른 %d이 있어야 출력이 Printf("This is palindrome")Palidrome 프로그램은 내가 간단한 논리를 사용하여 회문 프로그램을 만들려고 노력하고

#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의 아저씨가 기억하는 것으로, 두 번째''if''는 재범입니다. – luk32

+0

두 개의 printf 문이 모두 같습니다. Pls check –

답변

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

에 입력되는 얻을 수 없습니다. 그렇지 않으면 f에 가비지 값이 포함되어 있으며 결코 a과 같지 않습니다.

int 대신 문자열을 읽는 것과 같이 코드를 재검토하고 좀 더 일반적인 것을 쓸 것을 권장합니다.

+0

예. 그것은 대략 작동했다. 그러나 나가 그것을 "55555를 타자를 쳐 넣는 경우에 틀린 waylike"그것의 인쇄는 "나의 논리를 상반되는 palidrome가 아니다 것과 같이 인쇄했다. – user3285610

+1

@ user3285610 5 개의 int를 입력했기 때문에. 상태를 확인하십시오. – Maroun

+0

첫 번째 printf 문을 printf로 변경하십시오 ("palindrome의 6 자리 입력"). – vathsa

2

이 코드 문제 몇 가지 있습니다 :

  • 당신이 전화는 scanf() 5 %d에 있지만, 다른 사람에
  • 당신의 상태 (당신이 %d을 놓치고) 6 개 매개 변수를 전달 가지가 불필요하다. (a, f), (b, e), (c, d) 쌍 중 적어도 하나가 else 브랜치에 두 개의 동일한 값인
  • 을 포함하고 있지 않다는 것을 알고 있다면 printf("its a palindrome")임이 분명하지만 하지 회문 제 1 및 마지막 자리 경우
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; 
} 
관련 문제