按顺序输出整数(利用指针

实验内容:输入3个整数,按由小到大的顺序输出,然后将程序改为:输入3个字符串,按由小到大的顺序输出。

1.0(只调用一个函数

#include
int main()
{
	void swap(int *p1,int *p2);
	//对swap函数的声明 
	//void空函数,无返回值,也可(int *,int *) 
	int a,b,c;
	int *p1,*p2,*p3;//定义int*型指针变量 
	printf("input three integer a b c:\n");
	scanf("%d,%d,%d",&a,&b,&c);
	p1=&a;//使p指向a,b,c 
	p2=&b;
	p3=&c;
	if(a>b)swap(p1,p2);
	if(a>c)swap(p1,p3);
	if(b>c)swap(p2,p3);
	printf("Now the order is:%d,%d,%d\n",a,b,c);
	return 0;
 } 
 void swap(int *p1,int *p2)
 {
 	int temp;
 	temp=*p1;*p1=*p2;*p2=temp;
 	//不可为*temp(无确定指向) 
 }

2.0(调用两个函数

#include
int main()
{
	void exchange(int *q1,int *q2,int *q3);//函数声明 
	int a,b,c,*p1,*p2,*p3;
	printf("please enter three numbers:");
	scanf("%d,%d,%d",&a,&b,&c);
	p1=&a;p2=&b;p3=&c;
	exchange(p1,p2,p3);
	printf("The order is:%d,%d,%d\n",a,b,c);
	return 0;
}
void exchange(int *q1,int *q2,int *q3)//定义将3个变量的值交换的函数 
{
	void swap(int *p1,int *p2);//函数声明 
	if(*q1>*q2)swap(q1,q2);
	if(*q1>*q3)swap(q1,q3);
	if(*q2>*q3)swap(q2,q3);
}
void swap(int *p1,int *p2)//定义将2个变量的值交换的函数
{
	int temp;
	temp=*p1,*p1=*p2,*p2=temp;
}

你可能感兴趣的:(算法,数据结构,c#,c语言)