注册 登录
编程论坛 C++教室

新手上路,关于“回文”问题,不知哪里出现了错误,烦劳各位指点一下

常明 发布于 2014-12-05 20:05, 495 次点击
#include <cstdlib>
#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char *argv[])
{
    int i,j;
    char str[20];
    gets(str);
    for(i=0,j=strlen(str)-1;i<j;i++,j--)
    {
      if(str[i]==str[j])
      continue;
      else
      break;
    }
    if(i>=j)
      printf("yes");
      else
        printf("no");
    system("PAUSE");
    return EXIT_SUCCESS;
}
6 回复
#2
yangfrancis2014-12-07 13:52
是不是for循环的步长有问题呢?只听说过设置一种步长啊,你确定i++和j--同时出现没问题吗?要不试一下:
for(i=0;i<=strlen(str);i++)
{
   if(str[i]=str[strlen(str)-1-i])
       continue;
   else
       {cout<<"no";
       return EXIT_SUCCESS;}
}
cout<<"yes";return EXIT_SUCCESS;
如果还是不行就不知道怎么弄了。
#3
rjsp2014-12-08 09:15
“不知哪里出现了错误”
------ 说出你遇到的问题
       如果是编译错误,贴出编译器给出的错误信息
       如果是运行结果不符合你的预期,贴出 你的输入、实际输出,和 你期待的输出。
#4
常明2014-12-09 22:09
回复2楼:十分感谢您的帮助;对于没有及时向您表示感谢,在此深感抱歉!
#5
常明2014-12-09 22:12
回复三楼:问题暂已解决,对您的关注与提示表示感谢
#6
常明2014-12-20 19:08
回复 2楼 yangfrancis
您好  隔了一段时间  现在可以明确告诉您  For的步长应该是没有问题的  I和J是可以同时出现的  不过还是感谢您的热心帮助
#7
yangfrancis2014-12-21 21:53
也谢谢你。
1