似乎并没有对所有数字进行排序。有些完全消失了。
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++);
}
}
有什么问题?
答案 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]);
}
此代码将按升序排序