600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > C语言学习之用指针方法对10个整数按由大到小顺序排序

C语言学习之用指针方法对10个整数按由大到小顺序排序

时间:2023-12-23 01:26:08

相关推荐

C语言学习之用指针方法对10个整数按由大到小顺序排序

用指针方法对10个整数按由大到小顺序排序

法一

int main(){void sort(int x[],int n);//声明sort函数 int i,*p,a[10];p=a;//指针变量p指向a[0] printf("输入10个数:\n");for(i=0;i<10;i++){//输入10个整数 scanf("%d",p++);}p=a;//指针变量p重新指向a[0] sort(p,10);//调用sort函数 for(p=a,i=0;i<10;i++){printf("%d ",*p);//输出排序后的10个数组元素p++;}printf("\n");return 0;}void sort(int x[],int n){//定义sort函数,x是形参数组名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[i]=x[k];x[k]=t;}}}

法二

int main(){void sort(int *x,int n);//声明sort函数 int i,*p,a[10];p=a;//指针变量p指向a[0] printf("输入10个数:\n");for(i=0;i<10;i++){//输入10个整数 scanf("%d",p++);}p=a;//指针变量p重新指向a[0] sort(p,10);//调用sort函数 for(p=a,i=0;i<10;i++){printf("%d ",*p);//输出排序后的10个数组元素p++;}printf("\n");return 0;}void sort( int *x,int n){//形参x是指针变量 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)){// *(x+j)就是x[j],其他亦然 k=j;}}if(k!=i){t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}}}

不懂请留言,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。