Yoyo_adrian 2021-11-28 18:50 采纳率: 90%
浏览 24
已结题

这是哪里出错了?字符排序

说一下好吗?问题代码如下:

img

img

#include<stdio.h>
#include<string.h> 
int main()
{
    char a[1000];
    scanf("%s",&a);
    int len;
    len=strlen(a);
    int i,j,p;
    for (i=0;i<len-2;i+=2)
    {
        for (j=i+2;j<len;j++)
        {
            if(a[j]<a[i])
            {
                p = a[i];
                a[i]=a[j];
                a[j]=p;
            }
        }
    }
    printf("%s",a);
    return 0; 
}

  • 写回答

1条回答 默认 最新

  • 易水卷长空 2021-11-28 19:26
    关注
    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char a[1000]={0};//字符串初始化
        scanf("%s",a);//读入字符串用a就行,a是数组首地址
        int len;
        len=strlen(a);
        int i,j,p;
        for(i=0;i<len-2;i+=2)
        {
            for(j=i+2;j<len;j+=2)//j+=2而不是j++
            {
                if(a[j]<a[i])
                {
                    p=a[i];
                    a[i]=a[j];
                    a[j]=p;
                }
            }
        }
        printf("%s",a);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 11月28日