搜索
查看: 1232|回复: 2
打印 上一主题 下一主题

求助:回文字符串(递归)

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-25 17:44:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
本帖最后由 ls8062464 于 2014-5-25 17:45 编辑

    有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。

输入:
          字符串

输出:
          Yes或者No

说明:
          如输出Yes,说明输入的字符串是一个回文字符串
          输出No,说明输入的字符串不是一个回文字符串
          请使用递归算法实现。

求助为什么没法成功编译?

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. char a[100];
  4. int x,y,l;

  5. int s(l)
  6. {
  7. if (l==x/2+1) y=1;   
  8. else if (a[x-l]==a[l-1]) s(l)=s(l-1);
  9.       else y=0;
  10. return y;
  11. }

  12. int main(int argc, char *argv[])
  13. {
  14.   scanf("%s",a);
  15.   l=strlen(a);
  16.   x=l;
  17.   if (y==0) printf("No\n");
  18.   else printf("Yes\n");
  19.   
  20.   system("PAUSE");       
  21.   return 0;
  22. }
复制代码

最佳答案

查看完整内容

编译错误的原因是 s(l)=s(l-1); s(l)不是左值所以不能对它赋值
沙发
发表于 2014-5-25 17:44:19 | 只看该作者
编译错误的原因是
s(l)=s(l-1);

s(l)不是左值所以不能对它赋值
板凳
 楼主| 发表于 2014-5-25 19:03:00 | 只看该作者
rosynirvana 发表于 2014-5-25 18:06
编译错误的原因是
s(l)=s(l-1);

感谢  又犯二了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表