排序函数的问题无法排序,字母从A到Z排序

排序函数不能运行

img

求错误点,与如何改正,不需要新方法,需要正常运行的截图

img

img


#include <stdio.h>
int main() {

int charAmount=10;
char charList[charAmount];
scanf("%s",&charList);
int a[charAmount];
char b[charAmount];
for(int i=0;i<charAmount;i++){
    for(int m=0;m<charAmount;m++){
        if(charList[i]>charList[m])a[i]++; else
        if(charList[i]==charList[m]&&i>m)a[i]++;
    }
}
for(int i=0;i<charAmount;i++)
{
    b[a[i]]=charList[i];
}
for(int i=0;i<charAmount;i++)
    charList[i]=b[i];
for(int i=0;i<charAmount;i++){
    printf("%c",charList[i]);
}
return 0;
}

(1)scanf("%s",&charList)这里的&删掉,改成scanf("%s",charList)
(2)你的输入是10个字符,charAmount也是10,没有给\0留位置,可能会导致输入错误,把charAmount=10改成 charAmount=11,下面for循环里的charAmount改成 charAmount -1
你的代码里也没有排序啊

你用的什么排序算法呢?

不管你的代码到底是什么算法
好歹得有个交换值的过程吧
你循环了半天判断了半天,交换呢

第3行:scanf("%s",&charList); 多打了 ‘&‘ 符,修改为:scanf("%s",charList);

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632