排序函数不能运行
求错误点,与如何改正,不需要新方法,需要正常运行的截图
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);
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!