1个回答
展开全部
#include<stdio.h>
#define N 10
void fun(int *x,int n)
{
int i,j,k,temp;
for(i = 0 ; i < 2 ; i ++) //利用选择排序进行两次比较就行了,因为我们只需改变前边两个数a[0],a[1]的值
{
k = i;
for(j = i + 1 ; j < n ; j ++)
if(*(x + k) < *(x + j)) //这句代码等同于 if(a[k] < a[j])
k = j;
if(k != i)
{ temp = *(x+k);*(x+k) = *(x+i);*(x+i)=temp; }
}
}
int main()
{
int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
//不知道这样是否达到了你的要求
#define N 10
void fun(int *x,int n)
{
int i,j,k,temp;
for(i = 0 ; i < 2 ; i ++) //利用选择排序进行两次比较就行了,因为我们只需改变前边两个数a[0],a[1]的值
{
k = i;
for(j = i + 1 ; j < n ; j ++)
if(*(x + k) < *(x + j)) //这句代码等同于 if(a[k] < a[j])
k = j;
if(k != i)
{ temp = *(x+k);*(x+k) = *(x+i);*(x+i)=temp; }
}
}
int main()
{
int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
//不知道这样是否达到了你的要求
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询