求助,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;
}
展开
 我来答
我已经匿名了
推荐于2016-07-25 · TA获得超过816个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:240万
展开全部
不是很明白你的意思:是指直接输入回车无果吗? scanf以'\n'作为输入的结束(把回车之前的字符串存入a中),所以要是想只输入回车后立刻获得结果,可以用gets(a)代替scanf语句。
如果要求输入的唯一的'\n'也要判断成是回文,则还需要在n=strlen(a);后面再加判断:if(n==0) a[0]='\n';
追问
多谢,scanf改成gets之后就好了
生秋
2014-05-18 · 超过24用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:46.2万
展开全部

没有错啊,不明白你要修改什么

追问
你看题目里那个测试用例,它是什么都没有输入也显示为一个回文字符串,就是问那个应该怎么才能调正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式