题目大意:
输入多组字符串,若字符串为"STOP",则停止。判断字符串是否为回文字符串,类似A,ABA,ABCCBA,的为回文字符串,HELLO等则不是,输出格式为:是回文:#%d: YES 不是回文:#%d: NO.
解题思路:
用数组存字符串并读长度,令第一个字符与最后一个比较,第二个跟倒数第二个比较...这里用for循环实现,若不相等,break跳出循环,否则继续循环,判断循环因子是是否>=len/2,符合则输出YES,否则输出NO.
本题要点:
输出字符串遇到字符串就停止的格式要牢记,输出的格式也要借鉴,这里定义k=1,在循环中k++.
代码:
#include<cstdio>
#include<string.h>
int main()
{
char a[55];
int i,t,k=1,len;
while(gets(a),strcmp(a,"STOP")) //记住这种格式
{
len=strlen(a);
for(i=0;i<len/2;i++)
{
if(a[i]!=a[len-i-1]) //判断是否回文
break;
}
if(i>=len/2)
printf("#%d: YES\n",k);
else
printf("#%d: NO\n",k);
k++;
}
return 0;
}