|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include "stdio.h"
void main()
{
int a = 3,b = 2 ,c = 1;
void exchange(int ,int ,int );
exchange(a,b,c);
printf("%d %d %d",a,b,c);
}
void exchange(int a,int b,int c)
{
void swap(int ,int );
if(a>b)
{
swap(a,b);
}
if (a>c)
{
swap(a,c);
}
if (b>c)
{
swap(b,c);
}
}
void swap(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
道 理很简单,函数里面的abc是临时变量,并不是你主函数中的abc。
先看这一段代码: #include "stdio.h"
void main()
{
int a = 3,b = 2 ,c = 1;
void exchange(int ,int ,int );
exchange(a,b,c);
printf("%d %d %d",a,b,c);
}
void exchange(int e,int f,int g)
{
void swap(int ,int );
if(e>f)
{
swap(e,f);
}
if (e>g)
{
swap(e,g);
}
if (f>g)
{
swap(f,g);
}
}
void swap(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
指针,再看实现代码: #include "stdio.h"
void main()
{
int a = 3, b = 2 , c = 1;
void exchange(int *,int *,int *);
exchange(&a, &b, &c);
printf("%d %d %d \n",a,b,c);
}
void exchange(int *e,int *f,int *g)
{
void swap(int *,int *);
if( *e > *f )
{
swap(e, f);
}
if ( *e > *g )
{
swap(e, g);
}
if ( *f > *g )
{
swap(f, g);
}
}
void swap(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
|
|