c语言 将变量A和B的值进行互换 的程序
老规矩,先给代码
#include
int
main(){ int a,b,t; scanf("%d%d",&a,&b); printf("a=%d,b=%d
",a,b); t=a; a=b; b=t; printf("a=%d,b=%d
",a,b);}
这道题关键是利用第三者作为介质进行数据交换
不行吧,传值好像不行的,传引用吧
void fun(int &a,int &b)
{
int c;
c=a;
a=b;
b=c;
}
这样应该就可以了。尝试一下吧
代码如下:#include<stdio.h>
#include <stdlib.h>
void swap1(int& a,int& b) //使用中间变量交换两个值
{
int temp = a;
a = b;
b = temp;
}
void swap2(int& a, int& b) //只用加法、减法、乘法也可以交换两个值
{
a = a + b;
b = a - b;
a = a - b;
}
void swap3(int& a, int& b) //使用位运算也可以交换两个值
{
a = a^b;
b = a^b;
a = a^b;
}
void main1mianshiti7()
{
int a1 = 1, b1 = 2;
int a2 = 10, b2 = 15;
int a3 = 78, b3 = 90;
int a = 2147483647, b = 1;
printf("a1=%p,b1=%p", &a1, &b1);
swap1(a1, b1);
swap2(a2, b2);
swap3(a3, b3);
printf("swap after~~~~~~~~~~~~~
");
printf("a1=%d,b1=%d
", a1, b1);
printf("a2=%d,b2=%d
", a2, b2);
printf("a3=%d,b3=%d
", a3, b3);
swap2(a, b);
printf("a=%d,b=%d
", a, b);
system("pause");
}
源代码截图:
参考资料:百度百科-网页链接
扩展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
#include<stdio.h>
int a,b;
void swap()
{
int t;//我们创建一个临时变量用来交换变量的值
//先假设a = 1,b = 2
t = a;//此时t = 1,a = 1,b = 2
a = b;//此时t = 1,a = 2,b = 2
b = t;//此时t = 1,a = 2,b = 1
//完成了交换
}
int main(){
scanf("%d%d",&a,&b);
swap();
printf("a = %d , b = %d
",a,b);
return 0;
}
这是最基础的交换代码,创建一个临时变量来交换
事实上,还有一种交换方法:
#include<stdio.h>
int a,b;
void swap()
{
//假设 a = 1,b = 2
a = a + b;//此时 a = 3,b = 2
b = a - b;//此时 a = 3,b = 1
a = a - b;//此时 a = 2,b = 1
//交换完成
}
int main(){
scanf("%d%d",&a,&b);
swap();
printf("a = %d , b = %d
",a,b);
return 0;
}
先给a赋值成a+b
之后把b变成"a"-b也就是a+b-b=a
最后把a变成"a"-"b"也就是a+b-a=b
实现了交换
以上就是如何交换变量的方法
若我的回答对你有帮助,请采纳,若有问题可以追问我
老规矩,先给代码
#include<stdio.h>
int main(){ int a,b,t; scanf("%d%d",&a,&b); printf("a=%d,b=%d",a,b); t=a; a=b; b=t; printf("a=%d,b=%d
",a,b);}
这道题关键是利用第三者作为介质进行数据交换
介绍两种常用的值互换方法
// 方法1 使用临时变量的方法
void swap(int *a, int *b){
int t = *a; // 将a指向的值存入 t
*a = *b; // 将b指向的值存入 a
*b = t; // 将a原本的值存入 b
}
// 方法2 不使用临时变量的方法
void swap(int *a, int *b){
*a = *a ^ *b ; // 将二者的异或值存入a指向的值
*b = *a ^ *b ; // b = a^b^b 即 b = a
*a = *a ^ *b ; // a = a^b^a 即 a = b
}
关于异或操作请移步:https://zhidao.baidu.com/question/77719406.html?fr=iks&word=%D2%EC%BB%F2%B2%D9%D7%F7&ie=gbk
对于追求致简的同学来说,方法2可以利用括号来用一行代码实现:
// 致简(抽风)式写法
void swap(int *a, int *b){
*a ^= (*b = (*a ^= *b) ^ *b);
}
对于以上三种写法完整的程序格式如下:
#include<stdio.h>
void swap(int *a, int *b);
int main(void){
int a = -2, b = 3; // 可以更改不同的值来测试程序是否有问题
printf("a=%d b=%d
", a, b);
swap(&a, &b);
printf("a=%d b=%d
", a, b);
return 0;
}
void swap(int *a, int *b){
// 此处填上上述三种写法其一
}
#include <stdio.h>
void main(void)
{
int a,b,c;
printf("please input a= b=\n");
scanf("%d%d",&a,&b);
c=a;
a=b;
b=c;
printf("a=%d,b=%d\n",a,b);
return;
}
校杜赛福:[答案] 基本思想是定义一个新的变量作为中间变量C,让C = A,A = B,然后让B = C 就可以了.下面是用C语言实现的:#includeint main() {int A = 5,B = 7,C;printf("Before swap :A == %d,B == %d\n",A,B);C = A; // 这一步C = 5...
盐湖区13827161343: C语言中如何交换两个变量的值?大神们帮帮忙 - ?
校杜赛福: int a; int b; int c; 将b与a的值对换 代码如下 c=a; a=b; b=c;记得采纳啊
盐湖区13827161343: c语言中 A值与B值是如何转换的 - ?
校杜赛福: 通常的做法是利用中间变量赋值.比如说 A=10 B=20 那么声明一个变量为 C 数据类型同A B C=A; //C的值为10 A=B; //A的值为20 B=C; //B的值为10 执行下来结果为 A=20 B=10
盐湖区13827161343: 怎样用C语言设计一个程序,输入A、B的值,将两个值交换后输出. - ?
校杜赛福: #include <stdio.h> int main(int argc,char *argv[]) { int A,B,t; printf("请输入A的值:"); scanf("%d",&A); printf("请输入B的值:"); scanf("%d",&B); t=A; A=B; B=t; printf("互换后数值结果为:A=%d, B=%d\n",A,B); return 0; }
盐湖区13827161343: 定义两个变量a,b,如何用c语言编程,使两个变量的值能相互交换??
校杜赛福: 要想两个变量互换就得用一个临时存放数据的变量,如int a=1,b=2,temp;temp=a;a=b;b=temp;
盐湖区13827161343: 定义两个变量ab如何用c语言编程使两个变量的值能相互交换 - ?
校杜赛福: 1、 首先,就是最基本的知识,写头文件,函数声明,定义变量. 2、下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2. 3、然后就是调用函数,该函数没有返回值,就直接调用,但是参数进入的是a和b的地址,而不是a和b. 4、 函数用完之后,就是输出a和b的值看一看是否进行了互换. 5、a和b的地址传给x和y,我们通过指针直接对a和b的值进行操作. 6、 最后就是调换*x和*y的值,这样就是实现了a和b的值.
盐湖区13827161343: 若变量已正确定义,要将a和b中的数进行交换,C语句?
校杜赛福: 先定义变量temptemp=a;a=b;b=temp;这样就ok了.
盐湖区13827161343: 如何用C语言交换两个数a,b - ?
校杜赛福: 需要一个空操作数temp,temp=a;a=b;b=temp;
盐湖区13827161343: 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;
盐湖区13827161343: c语言,如何设计一个函数,将a,b的值互换? - ?
校杜赛福: void changes(float& x1,float& y1) 下面的不便,这样就不是传值了.而是传递引用.直接对参数起作用