回文计划不起作用

时间:2014-02-13 08:04:34

标签: c

我正在尝试使用简单的逻辑制作回文程序,但遗憾的是我无法在Printf( "This is palindrome")中输入输出

#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; 
  }

4 个答案:

答案 0 :(得分:3)

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

你应该有另一个%d。否则f包含垃圾值,它永远不会等于a

我建议您重新考虑您的代码并编写更通用的内容,例如阅读字符串而不是单个int

答案 1 :(得分:2)

您的代码存在一些问题:

  • 您使用5 %d调用scanf(),但传递6个参数(您错过了%d
  • 你在其他分支的状况是多余的;你已经知道对(a,f),(b,e),(c,d)中至少有一对不包含两个相等的值
  • 在您的其他分支中,您有printf("its a palindrome"),而显然不是回文

答案 2 :(得分: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; 
}

答案 3 :(得分:0)

else if( a!=f || b!=e || c!=d){
    printf("its a palindrome");
}

如果第一个和最后一个数字不相等,则不是回文。