wozhihaoluandale
2019-12-12 21:42c语言怎样更改指针的指向?求大佬解答!
c语言书上的。。。自己没事做,但是- -!脑子有点懵~~
题目是:三个数字abc比大小。用指针,按从大到小顺序输出。但是不能改变abc原来的值。 (我自己yy的题目,书上交换两个但是我想交换三个应该也可以的吧......结果....,事与愿违,,)
主函数
#include <stdio.h>
int main()
{
void notexchange(int *,int *,int *);
int a,b,c,*pa,*pb,*pc;
printf("请输入三个数字\n");
scanf("%d%d%d",&a,&b,&c);
pa=&a;
pb=&b;
pc=&c;
notexchange(pa,pb,pc);
printf("%o\t%o\t%o\t\n",pa,pb,pc);
printf("三个数字的大小为\n%d\t%d\t%d\t\n",*pa,*pb,*pc);
printf("abc的值为:\n%d\t%d\t%d\t\n",a,b,c);
return 0;
}
对三个数字就行比对
void notexchange(int *pa,int *pb,int *pc){
void notchange(int *x,int *y);
if(*pa<*pb)notchange(pa,pb);
if(*pa<*pc)notchange(pa,pc);
if(*pb<*pc)notchange(pb,pc);
}
对两个数字的交换
void notchange(int *a,int *b){
int temp;
temp=a;
a=b;
b=temp;
}
最后的运行结果是如图:
我试过了几种不同的交换方式,发现abc的原始值都发生了变化,我的想法是大小顺序排出来了,但是abc的原始值还是不变的。劳犯大佬帮看下这三个方法哪个有问题?感谢!
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- 关于链表中指针的问题
- c语言
- c++
- 2个回答
- 链表上直接使用Next指针与加上活动指针p后使用Next指针有什么区别?
- c语言
- c++
- 1个回答
- 【基础语法】【疑问】对空指针使用delete不应该是安全的吗
- c语言
- c++
- 1个回答
- 关于指针全局变量和局部变量存储位置的问题
- c语言
- 2个回答
- 关于C语言函数内存分配的疑问
- c语言
- 2个回答
换一换