啊哈磊_编程从这里起步

标题: 求助:回文字符串(递归) [打印本页]

作者: ls8062464    时间: 2014-5-25 17:44
标题: 求助:回文字符串(递归)
本帖最后由 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. }
复制代码


作者: rosynirvana    时间: 2014-5-25 17:44
编译错误的原因是
s(l)=s(l-1);

s(l)不是左值所以不能对它赋值
作者: ls8062464    时间: 2014-5-25 19:03
rosynirvana 发表于 2014-5-25 18:06
编译错误的原因是
s(l)=s(l-1);

感谢  又犯二了




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2