Xerxes 有一个复读机,但是这个复读机存在一些问题.
现在有 1 个字符串,下标(即位置)从 1 开始.
如果这个字符串是回文的,那么复读机可以顺利的读出这个字符串.
否则这个复读机只能读出这个字符串奇数位置的字符.
Xerxes 现在看起来无法修好他的复读机,因此他自己写了一个程序,来判断对于一个字符串这个复读机可以读出什么,但是他实在是太菜了,所以他的程序中存在一些问题,他希望你能帮他改正他程序中的问题。提交时你只需要提交“修改起始”到“修改结束”处的代码
#include <stdio.h>
#include <string.h>
char s[1005];
int main() {
scanf("%s", s + 1);
/*** 修改起始 ***/
int ok = 0, i; // [1]
int len = strlen(s + 1); // [2]
for (i = 1; i < len / 2; i++) // [3]
if (s[i] != s[len - i]) // [4]
ok = 0; // [5]
if (ok) printf("%s\n", s); // [6]
/*** 修改结束 ***/
else {
for(i = 1; i <= len; i += 2)
printf("%c", s[i]);
}
return 0;
}
输入
输入一行字符串,保证字符串长度不超过 100.
输出
输出这个复读机能读出的结果.
你只需要提交需要修改的部分的代码即可,不需要提交全部代码。
输入输出样例
样例输入 #1
qwertyuiop
样例输出 #1
qetuo
样例输入 #2
asdfghgfdsa
样例输出 #2
asdfghgfdsa
提示
在需要修改的这6行代码中,你可能需要修改4处。
判断回文字符串的时候请注意不要遗漏中间的部分。
注意本题的起始下标。
回文字符串是一个正读和反读都一样的字符串。
样例 1 中,这个字符串不是回文的,因此只输出奇数位置的字符(第 1,3,4,7,9 个字符,分别为 q,e,t,u,o).
样例 2 中,这个字符串是回文的,因此可以顺利读出整个字符串.
参考解答
//2022.11.30
int ok=1,i;//1
int len=strlen(s+1);
for (i=1;i<=len/2;i++)//1
if(s[i]!=s[len-i+1])//1
ok=0;
if(ok)
puts(s+1);//1