C程序如何实现两个变量a,b的变换
4个回答
展开全部
你好!!!
方法很多,我用了变量的的地址作为参数和用到引用作为参数,写了2个程序实现交换:
1.用指针作为形参,交换的是指针所指向的值,而不是指针变量的值。例如:
子函数写这样:
void
swap(int
*a,int
*b)
{
int
*temp;
temp=a;
a=b;
b=temp;
}
交换的是指针的值,但是交换后,在子函数了实现了交换,但是在主函数了却没有实现交换。
代码如下:
#include
void
swap(int
*a,int
*b)
{
int
temp;
temp=*a;
*a=*b;
*b=temp;
}
void
main()
{
int
x,y;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);
printf("交换前的:x=%d,y=%d\n",x,y);
swap(&x,&y);//用x,y的的地址作为实参
printf("交换后的:x=%d,y=%d\n",x,y);
}
测试:
请输入两个整数:
3
6
交换前的:x=6,y=3
交换后的:x=6,y=3
Press
any
key
to
continue
2.要形参是引用,其实引用就是同一个变量的不同称呼而已,比如;人的大名和小名都是指的同一个人,那么在子函数了交换,在主函数里也实现了交换。
代码如下:
#include
void
swap(int
&a,int
&b)
{
int
temp;
temp=a;
a=b;
b=temp;
}
void
main()
{
int
x,y;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);
printf("交换前的:x=%d,y=%d\n",x,y);
swap(x,y);
printf("交换后的:x=%d,y=%d\n",x,y);
}
测试:
请输入两个整数:
6
7
交换前的:x=6,y=7
交换后的:x=7,y=6
Press
any
key
to
continue
方法很多,我用了变量的的地址作为参数和用到引用作为参数,写了2个程序实现交换:
1.用指针作为形参,交换的是指针所指向的值,而不是指针变量的值。例如:
子函数写这样:
void
swap(int
*a,int
*b)
{
int
*temp;
temp=a;
a=b;
b=temp;
}
交换的是指针的值,但是交换后,在子函数了实现了交换,但是在主函数了却没有实现交换。
代码如下:
#include
void
swap(int
*a,int
*b)
{
int
temp;
temp=*a;
*a=*b;
*b=temp;
}
void
main()
{
int
x,y;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);
printf("交换前的:x=%d,y=%d\n",x,y);
swap(&x,&y);//用x,y的的地址作为实参
printf("交换后的:x=%d,y=%d\n",x,y);
}
测试:
请输入两个整数:
3
6
交换前的:x=6,y=3
交换后的:x=6,y=3
Press
any
key
to
continue
2.要形参是引用,其实引用就是同一个变量的不同称呼而已,比如;人的大名和小名都是指的同一个人,那么在子函数了交换,在主函数里也实现了交换。
代码如下:
#include
void
swap(int
&a,int
&b)
{
int
temp;
temp=a;
a=b;
b=temp;
}
void
main()
{
int
x,y;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);
printf("交换前的:x=%d,y=%d\n",x,y);
swap(x,y);
printf("交换后的:x=%d,y=%d\n",x,y);
}
测试:
请输入两个整数:
6
7
交换前的:x=6,y=7
交换后的:x=7,y=6
Press
any
key
to
continue
展开全部
一种是一般的解决方案,多定义一个变量;例:
int
t;
t=a;
a=b;
b=a;
这是最常用的。
另外就是用C中位运算的^(异或)例:
a=a^b;
b=a^b;
a=a^b;
这个不用多创建一个变量。但是难理解一些。
因为第二种是使用二进制运算的,异或。不懂第二种再问我一下就是,我给你补充。
int
t;
t=a;
a=b;
b=a;
这是最常用的。
另外就是用C中位运算的^(异或)例:
a=a^b;
b=a^b;
a=a^b;
这个不用多创建一个变量。但是难理解一些。
因为第二种是使用二进制运算的,异或。不懂第二种再问我一下就是,我给你补充。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序中最简单方法也就是第一沙发者回答的那个,
这里面藏着一个陷阱,我今年考试的时候就被狠狠的陷了一次,害我没拿到高分。以下陈述:
调用函数中的变量a,b,在被调用函数作为中形参变换后,在调用函数中a,b值不发生任何变化。
楼主注意这个问题哦。。
这里面藏着一个陷阱,我今年考试的时候就被狠狠的陷了一次,害我没拿到高分。以下陈述:
调用函数中的变量a,b,在被调用函数作为中形参变换后,在调用函数中a,b值不发生任何变化。
楼主注意这个问题哦。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义中间变量temp(一般都用这个标识符),执行以下语句:
temp=a;a=b;b=temp;
OK!
temp=a;a=b;b=temp;
OK!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询