拨雪寻春640 2022-11-06 21:23 采纳率: 62.9%
浏览 31
已结题

求是否是回文串,且不同字母个数?哪里出问题了?为什么输出结果全是no?

#include <stdio.h>
#include <string.h>
int main()
{
int m,num=0,geshu,j;
char ch[51],min;
while (scanf("%s", ch) == 1)
{
num = 0;
geshu = 1;
m = strlen(ch);
for (int i = 0;i<(m/2);i++)
{
if (ch[i] == ch[m - 1 - i])
num=num+1;
}
if (num == (m / 2))
{
printf("YES ");
for (int i = 0; i <= num; i++)
{
for(j=i;j<=num;j++)
{ if(ch[j]>ch[j+1])
{min=ch[j+1];
ch[j+1]=ch[j];
ch[j]=min;}}
}
for(int i=0;i<num;i++)
{
if (ch[i] != ch[i+1])
geshu++;
}
//if((m%2)==0)
printf("%d\n",geshu-1);
//else
//printf("%d\n",geshu);
}
else
printf("NO\n");
}
return 0;
}

样例输出是这样的

img

求是否是回文串,且不同字母个数?哪里出问题了?为什么输出结果全是no?

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-11-06 22:49
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <string.h>  //修改
    int main()
    {
        int m,num=0,geshu;// ,ch[51] 修改
        char ch[51];      // 修改
        while (scanf("%s", ch) == 1)
        {
            num = 0;        //修改
            geshu = 1;
            m = strlen(ch);//m = strlen(ch)-1;修改
            for (int i = 0;i<(m/2);i++)
            {
                if (ch[i] == ch[m - 1 - i])
                    num=num+1;
            }
            if (num == (m / 2)) //if ((num-1) == (m / 2))修改
            {
                printf("YES ");
                //这里开始统计字母个数
                for (int i = 1; i <= num; i++)
                //for (int i = 1; i < num; i++)修改
                {
                    if (ch[i] != ch[i - 1])
                        geshu++;
                }
                //if(m%2==0)  修改
                printf("%d\n",geshu);
                //else        修改
                //    printf("%d\n",geshu+1);修改
            }
            else
                printf("NO\n");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 修改了问题 11月7日
  • 修改了问题 11月6日
  • 展开全部

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入