我的排序功能有什么问题?

时间:2015-03-24 14:04:23

标签: c function sorting

似乎并没有对所有数字进行排序。有些完全消失了。

void sort ()
{
    int i = 0, l = 0;

    while(i < myclass.d_arr_size)
    {
        if(myclass.d_arr[i] <= myclass.d_arr[l])
        {
            myclass.d_arr[i] = myclass.d_arr[l];
            i++;
        } else (l < myclass.d_arr_size) ? (l++) : (l=0, i++);
    }
}

有什么问题?

2 个答案:

答案 0 :(得分:2)

myclass.d_arr[i] = myclass.d_arr[l];

您应该交换值,而不是仅仅分配到i索引。

这可能不是您代码中的唯一错误:)

答案 1 :(得分:0)

#include <stdio.h>

void main()

{

    int x, y, a, l, number[30];

    printf("Enter the value of N \n");
    scanf("%d", &l);
    printf("Enter the numbers \n");
    for (x = 0; x < l; ++x)
        scanf("%d", &number[x]);
    for (x = 0; x < l; ++x)
    {
        for (y = x + 1; y < l; ++y)
        {
            if (number[x] > number[y])
            {
                a =  number[x];
                number[x] = number[y];
                number[y] = a;
            }
        }
    }
    printf("The numbers arranged in ascending order are given below \n");
    for (x = 0; x< l; ++x)
        printf("%d\n", number[x]);
}

此代码将按升序排序