问题遇到的现象和发生背景
我想到了选择性排序,但是调换后
1.最小的确实在最前面,但第一个数不在最小的数的原始位置
2.最大值不在最后面
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
void sort(int *a)
{
int j,temp1,temp2;
for(j=1;j<10;j++)
{
if(a[0]>=a[j])
{
temp1=a[0];
a[0]=a[j];
a[j]=temp1;
}
}
for(int i=0;i<9;i++)
{
if(a[9]<=a[j])
{
temp2=a[9];
a[9]=a[j];
a[9]=temp2;
}
}
printf("调整后的数组为:\n");
for (int k=0;k<10;k++)
{
printf("%d ",a[k]);
}
return;
}
int main()
{
int arr[10],*p;
printf("请输入十个数:\n");
for(int i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
p=arr;
sort(p);
return 0;
}