无所不能样样精通的大佬们,求解惑,感谢

在学C的fw 2024-11-28 17:24:21

为什么我的代码中判断字符长度奇偶时会被跳过

顺便 帮忙解一下题也行

题目描述

DML有个只有小写字母的字符串。他想从字符串中更改一个字符,以便让这个字符串成为回文串。
回文串是一个字符串,从前往后读和从后往前读都相同,例如串 “z” “aaa” “aba” “abccba” 是回文串,但串 “acm” “ab”不是回文串。 

输入

多实例,每个实例一行,输入一行字符串s,字符串长度len(1<=len<=100)。
输入到文件尾结束。

输出

如果DML只更改一个字符,使得结果字符串为回文串,则输出“YES”, 否则 输出“NO”。

样例输入 Copy

abccaa
abbcca
abcda

样例输出 Copy

YES
NO
YES

//我的代码(有问题,答案错误,判断字符长度奇偶被跳过):

#include <stdio.h>
#include <string.h>
int main(){
    char z[110];
    int len,i,cnt=0,ntc=0;
    while(scanf("%s",&z)!=EOF){
        len=strlen(z);
        if(len==1) printf("YES\n"); 
        if(len>1){
            cnt=0;
            ntc=0;
            if(len%2!=0){
                ntc==1;
            } 
            for(i=0;i<len/2;i++){
                if(z[i]!=z[len-i-1]){
                    cnt++;
                }
                
            }
            if(cnt==1) printf("YES\n");
            else if(cnt==0&&ntc==1) printf("YES\n");
            else printf("NO\n");
        }
        
    }
    return 0;
}

...全文
62 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

真想删帖,我也是zui了

forever74 11-29
  • 打赏
  • 举报
回复

你敲俩等号干啥?

69,774

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧