怎样用c语言编写两值的交换

 我来答
灵秀且热诚丶便当7933
2011-09-13 · TA获得超过185个赞
知道答主
回答量:251
采纳率:0%
帮助的人:143万
展开全部

/*
编写c语言程序,实现交换两个变量值的操作。
要求:使用形参为指针的函数swap完成交换功能。
主函数中,使用整型清尘指针从键盘输入两个整数,通过斗姿调用swap完成交换
输出交换前后的变量值进行比较。
输入输出示例:
Input two number:3 4
Before change:空正绝a=3,b=4
After change:a=4,b=3

*/
//File: swap.c

#include <stdio.h>
#include <stdlib.h>

void swap(int *a, int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}

int main()
{
int *a=NULL,*b=NULL;
a=(int *)calloc(1,sizeof(int));
if(!a)
{
perror("calloc a err.");
}
b=(int *)calloc(1,sizeof(int));
if(!b)
{
perror("calloc b err.");
}

printf("Input two number:");
scanf("%d %d",a,b);
printf("Before change:a=%d,b=%d\n",*a,*b);
swap(a,b);
printf("After change:a=%d,b=%d\n",*a,*b);
return 0;
}
C:\mypro>gcc -g -Wall swap.c -o swap

C:\mypro>swap
Input two number:3 4
Before change:a=3,b=4
After change:a=4,b=3

C:\mypro>
程序已调好,直接运行即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liufashuai
2011-09-12 · TA获得超过605个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:264万
展开全部
很多方没老法啊,如果你想用函数

void swap(int *x,int *y)
{
int t = *x;
*x = *y;
*y = t;
}

当然你也可以
用两个式子来表数败示:
下面以交换a,b为例
a=a+b;
b=a-b;
a=a-b

或枯毕升者:
a = a^b;
b=a^b;
a=a^b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小飞花儿的忧伤
推荐于2016-11-15 · TA获得超过1661个赞
知道小有建树答主
回答量:1152
采纳率:100%
帮助的人:324万
展开全部
void swap(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
调用时数激旁铅卜,薯橡
swap(&a,&b);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式