程序里有几个问题:
① 函数sort的声明和定义,应该修改如下:
void sort(char number[], int n);
② 函数sort里面:
a) 修改temp为:
char temp;
b) strcmp的那句修改如下:
if(number[k] > number[j])
之后,程序可以正常编译运行,并得到正确结果。 这是变化最小的修改方案。
你原来main程序中number定义成了执行数组的指针,其实没有必要,直接用数组名a即可;
由于比较的是每个字符,所以sort里面的temp不必用指针,直接用一个间接字符变量用于临时存储字符串中的字符即可。你原来的代码,把字符串和字符;数组和指针之间的关系没有理顺。 其它地方从语法上没有问题。