(指针法)输入三个整数按由小到大的顺序输出

  • Post author:
  • Post category:其他


方法一:冒泡排序

#include<stdio.h>
int main(){
	int a[3];
	int *p;
	int i,t,j;
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	p=a;
	for(j=0;j<3;j++)
	{i=0;p=a;
		for(i=0;i<3;i++,p++)
		{
			if(*p>*(p+1))
			{t=a[i];a[i]=a[i+1];a[i+1]=t;
			}
		}
	}
	
	for(i=0;i<3;i++)
	printf("%d",a[i]);
}

方法二:

#include <stdio.h>
int main()
{
	void swap(int *p1,int *p2);
	int n1,n2,n3;
	int *p1,*p2,*p3;
	scanf("%d%d%d",&n1,&n2,&n3);
	p1=&n1;
	p2=&n2;
	p3=&n3;
	if(n1>n2) swap(p1,p2);
	if(n1>n3) swap(p1,p3);
	if(n2>n3) swap(p2,p3);
	printf("%d\n%d\n%d\n",n1,n2,n3); 
	return 0;
}

void swap(int *p1,int *p2)
{
	int p;
	p=*p1;
	*p1=*p2;
	*p2=p;
}



版权声明:本文为m0_66460650原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。