|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|