YTUOJ 3920复读机

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值