求助,c语言中如何在直接输入回车后得到结果
有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。输入:字符串输出:Yes或者No说明:如输出Yes,说明输入的字符串是一个回...
有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。
输入:
字符串
输出:
Yes或者No
说明:
如输出Yes,说明输入的字符串是一个回文字符串
输出No,说明输入的字符串不是一个回文字符串
请使用递归算法实现。
测试用例 10 以文本方式显示
1.↵
以文本方式显示
1.Yes↵
就是上面这个测试用例,就下面这个程序应该如何修改,现在这个程序直接输入回车就是无结果。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[100];
int main(int argc, char *argv[])
{
int n,x,y,r,tss(int,int);
scanf("%s",a);
n=strlen(a);
x=0,y=n-1;
r=tss(x,y);
if(r==0) printf("Yes\n");
if(r==1) printf("No\n");
system("PAUSE");
return 0;
}
int tss(int x,int y)
{int m;
if(a[x]!=a[y]) m=1;
else if(x==y||(x+1==y&&a[x+1]==a[y])) m=0;
else if(a[x]==a[y]) m=tss(x+1,y-1);
return m;
} 展开
输入:
字符串
输出:
Yes或者No
说明:
如输出Yes,说明输入的字符串是一个回文字符串
输出No,说明输入的字符串不是一个回文字符串
请使用递归算法实现。
测试用例 10 以文本方式显示
1.↵
以文本方式显示
1.Yes↵
就是上面这个测试用例,就下面这个程序应该如何修改,现在这个程序直接输入回车就是无结果。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[100];
int main(int argc, char *argv[])
{
int n,x,y,r,tss(int,int);
scanf("%s",a);
n=strlen(a);
x=0,y=n-1;
r=tss(x,y);
if(r==0) printf("Yes\n");
if(r==1) printf("No\n");
system("PAUSE");
return 0;
}
int tss(int x,int y)
{int m;
if(a[x]!=a[y]) m=1;
else if(x==y||(x+1==y&&a[x+1]==a[y])) m=0;
else if(a[x]==a[y]) m=tss(x+1,y-1);
return m;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询