|
发表于 2018-8-10 21:35:30
|
显示全部楼层
这个x,y,z只是a,b,c的拷贝,要想修改a,b,c的值,请使用指针:
- #include "stdio.h"
- #include "conio.h"
- void exchange(int x,int y,int z);
- int main()
- {
- int a,b,c;
-
- printf("Please input three numbers: ");
- scanf("%d%d%d",&a,&b,&c);
-
- exchange(&a,&b,&c);
-
- printf(" %d > %d > %d\n",a,b,c); // 就是这个地方,为啥输出的结果不对呢?我明明已经调用了自定义函数了啊!黑人问号??
-
- getch();
-
- return 0;
- }
- void exchange(int* x,int* y,int* z)
- {
- int temp;
-
- if(*x < *y)
- {
- temp = *x;
- *x = *y;
- *y =temp;
- }
-
- if(*x < *z)
- {
- temp = *x;
- *x = *z;
- *z = temp;
- }
-
- if(*y < *z)
- {
- temp = *y;
- *y = *z;
- *z = temp;
- }
-
- //printf(" %d > %d > %d\n",x,y,z);
-
- }
复制代码
这样才能通过指针修改到a,b,c的值。(因为这时候x,y,z等于a,b,c的内存地址,所以可以去修改) |
|