1158: 又是排序(指针专题)
题目描述
将输入的四个整数按由大到小的顺序输出。
已定义如下swap函数,可实现形参pa和pb所指内存单元的内容交换。请务必使用本函数实现两个变量内容的互换。
void swap( int *pa, int *pb)
{
int t;
t=*pa; *pa=*pb; *pb=t;
}
输入
输入4个整数,用空格隔开。
输出
输出排序后的4个整数,由空格隔开。输出占一行。
样例输入
4 3 5 2
样例输出
5 4 3 2
已通过代码
#include<stdio.h>
void psort(int *pa,int *pb,int *pc,int *pd);
int main()
{
int *pa,*pb,*pc,*pd;
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
psort(&a,&b,&c,&d);
printf("%d %d %d %d",a,b,c,d);
return 0;
}
void psort(int *pa,int *pb,int *pc,int *pd)
{
int a[4]={0};
a[0]=*pa;
a[1]=*pb;
a[2]=*pc;
a[3]=*pd;
int i,t;
for( i=0;i<4;i++)
{
for(int j=i;j<4;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
*pa=a[0];
*pb=a[1];
*pc=a[2];
*pd=a[3];
}
第一次写不知道怎么排版