︶ㄣ痕迹の天涯 发表于 2014-3-23 20:45:10

判断回文,大神们来帮看看逻辑错哪了

#include<stdio.h>int main(void)
{
        char a;
        int i,n;
        printf("input letter numbers:");
        scanf("%d",&n);
        if(n>=10||n<=0)
                printf("input error\n");else
        {
                printf("input all letter:");
                for(i=0;i<=n;i++)
                        a=getchar();
                for(i=0;i<n-i-1;i++)
                {       
                        if(a!=a)
                        {
                                printf("NOT\n");break;
                        }
                        if(i==n/2)
                                printf("YES\n");
                }
        }
        return 0;
}

swsm 发表于 2014-3-23 20:45:11

本帖最后由 swsm 于 2014-3-23 23:00 编辑


#include<stdio.h>
int main(void)
{
      char a;
      int i,n;
      printf("input letter numbers:");
      scanf("%d",&n);
      if(n>=10||n<=0)
                printf("input error\n");
                else
      {
                printf("input all letter:");
                for(i=0;i<=n;i++)
                        a=getchar();
                              
                for(i=0;i<=n;i++)//这里的代码是用来检测你输入的数据的,发现你把回车换行符也放进了a数组里,问题就在这!!!
                        printf("%c",a);
                              
                for(i=0;i<n;i++)   //这俩句代码用来把上面的问题解决的。
                        a = a;
               for(i=0;i<n;i++)
                {      
                     if(a!=a)
                        {
                              printf("NOT\n");break;
                        }
                        if(i==n/2)   
                        {
                              printf("YES\n");break;
                        }                                             
                }
      }
      return 0;
}
//程序改了,你看看,在程序中我已经注释了!呵呵,有问题,再交流啊!!!

zhaopengfei 发表于 2014-3-23 23:20:42

楼主真是精益求精啊,加油

︶ㄣ痕迹の天涯 发表于 2014-3-24 16:38:04

swsm 发表于 2014-3-23 22:58 static/image/common/back.gif
//程序改了,你看看,在程序中我已经注释了!呵呵,有问题,再交流啊!!!

哥们,你说的很对

︶ㄣ痕迹の天涯 发表于 2014-3-24 16:48:00

zhaopengfei 发表于 2014-3-23 23:20 static/image/common/back.gif
楼主真是精益求精啊,加油

呵呵,,,,,,,

︶ㄣ痕迹の天涯 发表于 2014-3-24 16:55:06

swsm 发表于 2014-3-23 22:58 static/image/common/back.gif
//程序改了,你看看,在程序中我已经注释了!呵呵,有问题,再交流啊!!!

#include<stdio.h>
int main(void)
{
        char a;
        int i,n,j;
        printf("input letter numbers:");
        scanf("%d",&n);
        getchar();//使用getchar防止换行在下面被读入
        if(n>=10||n<=0)
                printf("input error\n");
        else
        {
                printf("input all letter:");
                i=0;
                for(i=0;i<n;i++)
                a=getchar();

                for(i=0;i<n;i++)
                        printf("%c",a);//实验证明,getchar会读入前方的所有输入
                printf("\n");
                for(j=0;j<n/2;j++)
                {       
                        if(a!=a)
                        {
                                printf("NOT\n");break;
                        }
                        if(j==n/2)
                                printf("YES\n");
                }
        }
        return 0;
}

swsm 发表于 2014-3-24 21:41:09

︶ㄣ痕迹の天涯 发表于 2014-3-24 16:55 static/image/common/back.gif


不错,这样写,挺好!!!我也学习了!呵呵!

欣欣celin 发表于 2014-3-24 22:36:35

水平不够,没看懂,继续努力-ING{:7_153:}

Simanzen 发表于 2014-3-26 00:31:01

我也来写一个:lol::lol:
#include<iostream>

using namespace std;

int main()
{
    bool symn(unsigned n);
    int n;
    cout<<"input letter numbers:";
    cin>>n;
    if(symn(n)&&symn(n*n)&&symn(n*n*n))
    {
      cout<<n<<" is plalindrome number";
    }
    return 0;
}

bool symn(unsigned n)
{
    unsigned i=n;
    unsigned m=0;
    while(i!=0)
    {
      m=m*10+i%10;
      i=i/10;
    }
    return n==m;
}

︶ㄣ痕迹の天涯 发表于 2014-3-26 21:21:25

Simanzen 发表于 2014-3-26 00:31 static/image/common/back.gif
我也来写一个
#include



呵呵,谢谢O(∩_∩)O

CS007 发表于 2014-3-28 00:00:54

。。。。。。。。。。
页: [1]
查看完整版本: 判断回文,大神们来帮看看逻辑错哪了