ACM的C语言题目,求高手搭救!

Description回文串是从左到右或者从右到左读起来都一样的字符串,试编程判别一个字符串是否为回文串Input输入一个字符串。串长度<255.Output判别输入的字... Description
回文串是从左到右或者从右到左读起来都一样的字符串,试编程判别一个字符串是否为回文串

Input
输入一个字符串。串长度<255.

Output
判别输入的字符串是否为回文串,是输出"Y",否则输出"N"。

Sample Input
abcba

Sample Output
Y
HINT
展开
 我来答
前端小茶馆
推荐于2017-12-16 · TA获得超过962个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:344万
展开全部

如果你只输入一个字符串,可以把程序里的while循环改了,不过对于ACM程序的判定来说,输入一个也是可以用while来进行输入的,你可以先提交一下我的代码试试。

count函数用来判定字符串s是否是回文,如果是返回1,否则返回0.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Count(char *s)
{
int i, j, t;
t = strlen(s);
i=0, j=t-1;
while(i<j)
{
if(s[i]!=s[j])
{
return 0;
}
i++, j--;
}
return 1;
}
int main()
{
char s[280];
while(scanf("%s", s)==1)
{
if(Count(s)==1)
{
putchar('Y');
}
else
{
putchar('N');
}
putchar('\n');
}
return 0;
}
zwlnba
2013-04-24
知道答主
回答量:56
采纳率:0%
帮助的人:8.7万
展开全部
#include(stdio.h)
int str_len(char *p)
{
int n=0;
while(*p!='\0')
{
n++;
p++;
}
return n;
}
int main()
{
char a[255];
int n,i;
printf("输入一个字符串:\n");
gets(a);
n=str_len(a);
for(i=0;i<n/2;i++){
if(a[i]!=a[n-1]){
printf("N\n");
return 0;
}
}
printf("Y\n");
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bizhongyang
2013-04-24
知道答主
回答量:43
采纳率:0%
帮助的人:16.8万
展开全部
#include<iostream>
using namespace std;
int test(char d[],int k,int i)
{
if(d[k]==d[i-k]&&k==0)
return 1;
else if(d[k]==d[i-k])
test(d,k-1,i);
else
return 0;
}
void main()
{
int i=0;n=0;
char b[255];
while((a=getchar())!=\n)
{
b[i]=a;
i++;
}
if(i%2==0)
n=test(b,(i/2),i-1);
else
n=test(b,(i/2-1),i-1);
if(n==0)
cout<<"N";
else
cout<<"Y";

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式