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

如题所述

第1个回答  2011-09-13

/*
编写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>
程序已调好,直接运行即可。
第2个回答  2011-09-12
很多方法啊,如果你想用函数

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
第3个回答  推荐于2016-11-15
void swap(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
调用时,
swap(&a,&b);本回答被网友采纳

c语言如何编写两个数字数值交换
1、首先我们在Dev C++软件中新建一个C语言项目,如下图所示 2、接下来我们在C语言文件中声明两个数字并输出,如下图所示 3、然后用一个中间变量对他们进行交换,如下图所示 4、最后运行编写好的C语言文件,我们就可以看到如下图所示的交换结果了 工具\/材料 Dev C++ ...

怎样用c语言编写两值的交换
主函数中,使用整型指针从键盘输入两个整数,通过调用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;tm...

输入两个整数,交换后输出 C语言怎么编程
利用C语言来实现交换两个变量的值,需要定义三个变量:include<stdio.h> int main(){ int x,y,temp;\/\/定义三个变量 printf("请输入分别x和y的值\\n");scanf("%d %d",&x,&y);\/\/终端输入变量x、y temp=y;\/\/把y赋值给temp y=x;\/\/把x赋值给y x=temp;\/\/把y赋值给temp printf("%d...

求一个C语言程序题:编写一个函数SWAP()实现交换两个数位置的功能
void swap(int *p, int *q);\/\/用传地址的方法交换 void main(){ int i, j;scanf("%d%d", &i, &j);\/\/从键盘输入两个交换的数 swap(&i, &j);\/\/传入i,j的地址 printf("i = %d, j = %d\\n", i, j);\/\/输出交换后的两个值 } void swap(int *p, int *q){ int temp;...

C语言交换2个数的值
你所说的使用指针一般是用在子函数里进行比较的,因为一个函数只能返回一个值,在函数中值互换后,需要返回两个值,所以,有人就想到了使用指针,因为指针指向的是地址,内存单元里面的内容互换后;a,b的值也会随之改变,这样,就可以不用返回值便能达到效果, 不使用临时变量可很简单,就是上面写#...

在C语言中如何将两个数进行互换
方法1: 使用一个临时变量来进行保存,这应该也是大家最容易想到的方法,话不多说,直接上代码。参考代码:include <stdio.h>int main(){ int a = 4; int b = 5; int nTemp; printf("交换前a,b的值为:\\n"); printf("a=%d\\n", a); printf("b=%d\\n", b);...

超级简单入门c语言,输入两个数,交换两个数值后输出,尽量用不同的方法...
}运行样例:2)include "stdio.h"int main(int argc,char *argv[]){int x,y;printf("Please enter x & y(int x,y)...\\n");scanf("%d%d",&x,&y);printf(" Exchange before: x = %d,y = %d\\n",x,y);x+=y,y=x-y,x-=y;\/\/交换printf("After exchanging: x = %d,y =...

c语言中如何实现两个字符的交换,求事例。
有多种方法:1 最常用的,中间变量法。使用第三个中间变量交换a,b的值。char a='-', b='+',c;c = a;a = b;b = c;实现a,b值的交换。2 利用加减法交换。交换a,b值可以用 a+=b;b=a-b;a=a-b;3 利用异或交换:交换a,b值的代码为:a^=b;b=a^b;a=a^b;...

用C语言编写程序实现两个整数交换值
include<stdio.h>int main(){ int x,y,t; printf("请输入二个整数:\\n"); scanf("%d%d",&x,&y); printf("输入的二个数为:x=%d,y=%d\\n"); t=x; x=y; y=t; printf("交换后的二个数为:x=%d,y=%d\\n"); return 0;} ...

在C语言中如何将两个数进行互换
1、借助中间变量完成,此方法直观,易理解,使用最多 2、不需要中间变量,通过变量身的运算完成交换。参考代码:方法1:int a=2,b=3,t;t=a; \/\/先将a存储到临时变量t中a=b; \/\/将b存储到a中b=t; \/\/将临时变量中的原a值存储到b中printf("a=%d b=%d\\n", a,b );方法2:int a=2,...

相似回答