在c中将单词排序为字母顺序

时间:2015-03-04 15:47:00

标签: c sorting

尝试使用冒泡排序将单词按字母顺序排列。任何人都可以在我的代码中找到错误,我正在调用它,但它似乎没有做它应该做的事情

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;
            }
        }
     }
}

它只返回原始单词

2 个答案:

答案 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;
                }
            }
         }
    }