尝试使用冒泡排序将单词按字母顺序排列。任何人都可以在我的代码中找到错误,我正在调用它,但它似乎没有做它应该做的事情
void alphasort(char *word, int length)
{
int i, j, k;
for(i=0; i<length-1; ++i)
{
for(j=0; j<length-i-1; ++j)
{
if (array[j] > array[j+1])
{
k= array[j];
array[j] = array[j+1];
array[j+1] = k;
}
}
}
}
它只返回原始单词
答案 0 :(得分:1)
您使用的逻辑没有任何问题。
唯一的错误是,你有一个未定义的变量array
。使用array
替换所有word
个实例,或将char *word
更改为char *array
。
代码:
void alphasort(char *array, int length)
{
int i, j, k;
for(i=0; i<length-1; ++i)
{
for(j=0; j<length-i-1; ++j)
{
if (array[j] > array[j+1])
{
k= array[j];
array[j] = array[j+1];
array[j+1] = k;
}
}
}
}
答案 1 :(得分:1)
您尚未定义变量array
。试试这个:
void alphasort(char *word, int length)
{
int i, j, k;
for(i=0; i<length-1; ++i)
{
for(j=0; j<length-i-1; ++j)
{
if (word[j] > word[j+1])
{
k= word[j];
word[j] = word[j+1];
word[j+1] = k;
}
}
}
}