C语言指针冒泡排序问题

#include
#include

int main(){
void sort(char *name[],int n);
char * alphabet[ ]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
int n = 5;
sort(alphabet,n);
for(int i=0;i<5;i++)
printf("%s\n",alphabet[i]);
return 0;
}

void sort(char *name[],int n){
int i=0,j=0;
char *temp;
for(;i<=4;i++){
for(;j<=n-j-1;j++){
if(strcmp(name[j],name[j+1])>0){
temp = name[j];
name[j] = name[j+1];
name[j+1] = temp;
}
}
}
}

    代码如上,想要通过ASCII码来比较alphabet中的字符串,并按照英文字母的顺序输出。函数SORT重用的冒泡排序,但输出的结果里只有第一位和第二位正确调换了位置,不知道问题出在哪里?请指教!万分感谢!!!

1个回答

C语言中关于排序问题(一冒泡排序)
c语言冒泡排序,指针,数组
C语言经典算法:冒泡排序
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

temp 是个指针,怎么可以赋值给字符?
应该声明为变量 char temp;
还有问题就是代码相当不规范。。。

qq_32060049
32060049 我赋的不是字符,而是指针数组,谢谢提醒~
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问