gpt4 book ai didi

c - 使用冒泡排序在 C 中对二维数组进行排序

转载 作者:行者123 更新时间:2023-11-30 20:26:10 25 4
gpt4 key购买 nike

好吧,我正在编写一个程序,给定一个二维字符串数组,我将按字母顺序对它们进行排序。我尝试对此使用冒泡排序。

这是我到目前为止的代码

void bubbleSort(char a[][100], int sz){
char temp[100];
int i,j;

for(i=0; i<sz; i++){
for(j=i+1; j <sz-1; j++){
if(strcmp( a[i], a[j] ) >0){
strcpy(temp, a[j]);
strcpy(a[j], a[j-1]);
strcpy(a[j-1], temp);
}
}
}
}

main(){
char x[10][100] = {"to","be","or","not","to","be","that","is","the","question"};
bubbleSort(x,10);
for(int i=0;i<10;i++)
printf("%s\n",x[i]);

system("pause");
}

这似乎不起作用。这就是我得到的:

be
or
not
be
is
to
that
the
to
question

比如,发生了什么?我的代码有问题吗?

最佳答案

您正在与 ij 进行比较。然后在 jj-1 之间交换..

if(strcmp( a[i], a[j] ) >0){
strcpy(temp, a[j]);
strcpy(a[j], a[j-1]);
strcpy(a[j-1], temp);
}

ij之间交换

for(i=0; i<sz; i++){
for(j=i+1; j <sz-1; j++){
if(strcmp( a[i], a[j] ) >0){
strcpy(temp, a[j]);
strcpy(a[j], a[i]);
strcpy(a[i], temp);
}
}
}

关于c - 使用冒泡排序在 C 中对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com