//例题10-9 用选择法对10个整数按由大到小顺序排序
#include<stdio.h>
/*
void sort(int x[],int n) //写法一 :数组写法。(以 '数组名' 作为 '形参', 用 '下标法' 引用形参数组元素)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(x[j]>x[k])
k=j;
}
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
*/
void sort(int *x,int n) //写法二:指针写法。( '指针变量x' 作为 '形参', *(x+j)就是x[j] )
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(*(x+j)>*(x+k))
k=j;
}
if(k!=i)
{
t=*(x+i);
*(x+i)=*(x+k);
*(x+k)=t;
}
}
}
int main()
{
int *p,i,a[10];
p=a; // 此句也可以写成 p=&a[0]; 句意:让 '指针变量p' 指向 '数组a首元素的地址'。
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;//重新让p指向数组首元素
sort(p,10); // '实参' 为 '指针变量p'
for(p=a,i=0;i<10;i++,p++)
printf("%d ",*p);
return 0;
}
C语言--指针--例题10-9 用选择法对10个整数按由大到小顺序排序
猜你喜欢
转载自blog.csdn.net/xiaoyue_/article/details/105066951
今日推荐
周排行