C语言中,通过定义函数,用选择法对10个数排序,全是正数时没问题,但当输入负数时,出现正数由小到大排列,然后负数由大到小排列
#include <stdio.h>
int BDX(int* SHUZU[10])
{
int min, x, y, z;
for (x = 0; x < 9; x++)
{
min = x;
for (y = x + 1; y < 10; y++)
if (SHUZU[min] > SHUZU[y]) min = y;
z = SHUZU[x];
SHUZU[x] = SHUZU[min];
SHUZU[min] = z;
}
return SHUZU[10];
}
int main()
{
int BDX(int SHUZU[10]);
int a[10], i, n=0;
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]);
for (i = 0; i < 10; i++)
BDX(a);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
1 3 5 7 -10 -8 -4 -5 9 10
1 3 5 7 9 10 -10 -8 -5 -4