【发布时间】:2021-04-12 00:14:04
【问题描述】:
我正在尝试实现一个排序函数,该函数将对数组中的字符进行排序。有人能说出为什么它不起作用吗?
int main()
{
char tab[] = {'e', 'b', 'd', 'z', 'a', 't', '\0'};
char tab2[7] = {0};
int i = 0, j = 0, k = 0;
while (tab[i] != '\0')
{
for (j = 0; tab[j] != '\0'; j++)
{
if (tab[i] > tab2[j])
{
tab2[k] = tab[j];
k++;
}
}
k=0;
i++;
}
printf("%s\n", tab2);
return 0;
}
【问题讨论】:
-
看来您的排序算法将使用 tab 中的最高值填充 tab2 的所有值。这不是排序的工作原理。
-
这里没有排序算法。为什么你认为这应该有效?
-
你前几天用错误的语言问了这个完全一样的问题。 (好吧,好吧,你加了两个没用的
!= '\0') -
冒泡排序是一种就地排序算法,但您甚至不会尝试更改
tab,因此您的任何代码都没有意义。你问怎么了,答案是:都是。 -
这能回答你的问题吗? Bubble Sort Algorithm in C
标签: c