输入3个整数a,b,c,要求按由大到小的顺序将它们输出。用函数实现。
思路:
采用的方法在函数中改变这3个变量的值,用swap函数交换两个变量的值,用exchange函数改变这3个变量的值。
#include<stdio.h>
int main(){
void exchangge(int *q1,int * q2, int *q3); //先定义三个形参指针
int a,b,c,*p1,*p2,*p3; //在定义三个变量,a,b,c
scanf("%d,%d,%d",&a,&b,&c); //a,b,c分别接收键盘输入
p1=&a; //p1.p2.p3分别指向abc
p2=&b;
p3=&c;
exchange(p1,p2,p3); //调用实参函数,调用结束后不会改变指针的指向
printf("%d,%d,%d\n",a,b,c); //最后输出a,b,c
return 0;
}
void enchange(int *q1,int *q2,int *q3){
void swap(int *pt1,int *pt2);
if(*q1<*q2)swap(q1,q2); //swap是交换函数,对输入的三个数进行比较
if(*q1<*q3)swap(q1,a3);
if(*q2<*q3)swap(q2,q3);
}
void swap(int *pt1,int *pt2){ //定义形参
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp; //交换指针指向的变量值
}