【发布时间】:2015-05-14 00:04:43
【问题描述】:
如何使用冒泡排序(或任何其他类型的排序)在 C 中对二维字符串数组进行排序? 我正在尝试做的事情如下:
例子:
未排序的二维字符串数组:
abfg
abcd
xyzw
pqrs
orde
已排序的二维字符串数组:
abcd
abfg
orde
pqrs
xyzw
我当前不起作用的算法(给我一个不兼容错误)如下:
#include <stdio.h>
#include<string.h>
int main()
{
char str[5][4];
int i,j;
char temp[4];
for (i=0;i<5;i++)
{
scanf("%s",str[i]);
}
for(i = 0; i<5-1; i++)
{
for(j = 0; j<5-1; j++)
{
if(strcmp(str[j],str[j+1])== -1)
{
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
for(i = 0; i< 5; i++)
printf("%s ", str[i]);
return 0;
}
【问题讨论】:
-
首先,我将实现一个冒泡排序算法,对anything进行排序。然后我会决定我的二维数组实际上是
char指针数组还是char数组数组(它们不是同义词)。然后我将适当的比较和交换代码放入冒泡排序中,以适当地处理决策结果。 -
@WhozCraig ,我已经这样做了,但它给了我一个不兼容的错误:
-
好,因为它不属于评论;这是您的问题不可或缺的一部分。
-
我的意思是我被告知在这种情况下我应该使用 strcpy 函数,但我不确定如何。
标签: c arrays computer-science bubble-sort c-strings