输入三个数,从小到大排列
#include<stdio.h>
void main()
{
void f(int *x,int *y,int *z);
int a,b,c;
int *pot1,*pot2,*pot3;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
pot1=&a;
pot2=&b;
pot3=&c;
f(pot1,pot2,pot3);
printf("%d %d %d \n",a,b,c);
}
void f(int *x,int *y,int *z)
{
void swap(int *p1,int *p2);
if(*x>*y)
swap(x,y);
if(*x>*z)
swap(x,z);
if(*y>*Z)
swap(y,z);
}
void swap(int *p1,int *p2)
{
int n;
n=*p2;
*p2=*p1;
*p1=n;
}
编译总是通不过去?请高人指导
你不要把函数的定义放在另一个函数里。我帮你改了一下就OK了
#include<stdio.h>
void f(int*x,int *y,int*z);
void swap(int *p1,int *p2);//函数定义要放在这里。
int main()
{
int a,b,c;
int *pot1,*pot2,*pot3;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
pot1=&a;
pot2=&b;
pot3=&c;
f(pot1,pot2,pot3);
printf("%d %d %d \n",a,b,c);
return 0;
}
void f(int *x,int *y,int *z)
{
if(*x>*y)
swap(x,y);
if(*x>*z)
swap(x,z);
if(*y>*z)
swap(y,z);
}
void swap(int *p1,int *p2)
{
int n;
n=*p2;
*p2=*p1;
*p1=n;
}
输入三个数,从小到大排列
#include<stdio.h>
void main()
{
void f(int *x,int *y,int *z);
int a,b,c;
int *pot1,*pot2,*pot3;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
pot1=&a;
pot2=&b;
pot3=&c;
f(pot1,pot2,pot3);
printf("%d %d %d \n",a,b,c);
}
void f(int *x,int *y,int *z)
{
//void swap(int *p1,int *p2); //申明出错
if(*x>*y)
swap(x,y);
if(*x>*z)
swap(x,z);
if(*y>*Z)
swap(y,z);
}
void swap(int *p1,int *p2)
{
int n;
n=*p2;
*p2=*p1;
*p1=n;
}