当前位置:首页 » 编程语言 » c语言交换值

c语言交换值

发布时间: 2022-12-09 16:43:06

c语言 编一程序 交换两个变量的值(用指针做函数参数)

#include <stdio.h>

void Swap(int a,int b)

{

int tmp = a;

a = b;

b = tmp;

printf("a=%d,b=%d ",a,b);

}

int main()

{

int a = 5;

int b = 10;

printf("a=%d,b=%d ",a,b);

Swap(a,b);

printf("a=%d,b=%d ",a,b);

return 0;

}

(1)c语言交换值扩展阅读:

形参和实参的特点

1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。

2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。

3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。

4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

网络-形参

⑵ 用C语言编写程序实现两个整数交换值

#include<stdio.h>
intmain()
{
intx,y,t;
printf("请输入二个整数: ");
scanf("%d%d",&x,&y);
printf("输入的二个数为:x=%d,y=%d ");
t=x;
x=y;
y=t;
printf("交换后的二个数为:x=%d,y=%d ");
return0;
}

⑶ c语言如何编写两个数字数值交换

我们用C语言的时候,经常需要将两个数字交换,那么如何实现呢?下面我给大家分享一下。

工具/材料

Dev C++

  • 01

    首先我们在Dev C++软件中新建一个C语言项目,如下图所示

  • 02

    接下来我们在C语言文件中声明两个数字并输出,如下图所示

  • 03

    然后用一个中间变量对他们进行交换,如下图所示

  • 04

    最后运行编写好的C语言文件,我们就可以看到如下图所示的交换结果了

⑷ 在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,b=3,t;
a += b ; //把两数之和存到a中
b= a-b ; //用两数和减去b可得原a,存储到b中
a= a-b ; //因为b现在是原a值,所以,用两数和减去b(原a)可得 原b,存储到a中
此方法,还可以用异或运算来实现,原理相同。

⑸ C语言中,怎样不用中间变量而互换两个变量的值呢

有两种方式可以不使用中间变量,交换同类型的变量a,b的值:
1 .使用加法操作
a+=b;
b=a-b;
a -= b;

2 .使用异或操作:
a^=b;
b^=a;
a^=b;

⑹ c语言交换变量a和b的值是什么

c语言交换变量a和b的值是:p、q,但没有给它们分配地址。

后面的程序,p、q分别指向了a、b的地址,所以可用。这个与媒介无关,计算机原理中很清楚地讲到,内存地址和内容,这个是C语言的基础。

c语言交换变量a和b的值是互相交换的。交换在常规办法中引入第三个变量是为了防止在赋值过程中丢失信息。如果有办法在赋值过程中保持信息,就不需要另外的变量了。就比如这里的a先等于b-a, 再让b=a。

有两个变量a 和b,想要交换它们的值,能不能这样操作呢?

不能,这样操作的意思是把a的值放到b中,然后b中的值已经被覆盖掉了,已经不是b原来的那个值了,所以是没有意义的。

既然不能这样操作,可以先把b的值备份一下,这样就可以覆盖了。然后设置一个变量t,先把b中的变量备份到t中,t=b。再把a中的变量放到b中,b=a。最后把备份的b放到a中,a=t。

⑺ C语言交换变量值的几种方法

方法一:三变量交换。

#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
intt=a;a=b;b=t;
printf("%d%d ",a,b);
return0;
}

方法二:加减交换

#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("%d%d ",a,b);
return0;
}

方法三:异或交换

#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
a=a^b;b=b^a;a=a^b;//可写成a^=b^=a^=b;
printf("%d%d ",a,b);
return0;
}

方法四(黑盒测试下):不交换

#include<stdio.h>
intmain(void)
{
inta,b;
scanf("%d%d",&a,&b);
printf("%d%d ",b,a);
return0;
}

⑻ c语言交换两个变量的值是什么

c语言交换两个变量的值是我们学习C语言常见的问题。

交换两个变量的值 交换两个变量的值是我们学习C语言常见的问题,通常我们采取的方式是定义中间变量,通过中间变量交换这两个变量值,其中可以通过引用、地址传递完成变量值交换。

c语言定义

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

⑼ C语言数值的交换

楼上的这个
a
=
a+b;
b
=
a-b;
a
=
a-b;
是个方法,是符合我们数学思维的方法,也是最初接触C语言的人可能想到的方法。
但是这样编程很不直观,不如t=a;a=b;b=t;来得快。
似乎在C++中有swap(a,
b)模板函数,直接实现a,b交换。
想玩高级一点的话,可采用“换标不换值”的方法,用数组元素作为数组的下标,这种方法换逻辑不换存储。
#include

void
main()
{
int
a=10,b=20;
int
array1[2]
=
{10,20};
//存a、b值
int
array2[2]
=
{0,1};
//存下标
b
=
array1[array2[0]];
a
=
array1[array2[1]];
printf("a=%d,
b=%d\n",a,b);
}
这个方法在对结构体数组值交换中非常好用!因为结构体数组一般每个成员都有很多个值,如:
struct
student
{
int
num;
double
score;
char
name[20];
}stu[5]={{1,98,"ziguowen"},{2,88,"dongda"},{3,78,"haha"}};
//交换stu[0]和stu[1],需要
int
n;
double
s;
char
n[20];
n
=
stu[0].num;
stu[0].num
=
stu[1].num;
stu[1].num
=
n;
s
=
stu[0].score;
stu[0].score
=
stu[1].score;
stu[1].score
=
s;
strcpy(n,
stu[0].name);
strcpy(stu[0].name,
stu[1].name);
strcpy(stu[0].name,s);
//而用下标的话,一个赋值语句即可,直接交换stu[0]

stu[1]
下标后全部交换!

⑽ c语言中三个整型数a b c怎么进行值的互换

二个变量值的交换一般需借助于一个辅助变量来完成的。
int
a=3,b=4,t;
通过以下的三个语句就能把a,b的值互换(这种操作有点像把二个瓶里的液体交换时,要借助于一个空瓶):
t=a;
a=b;
b=t;
不太清楚什么是“a
b
c值的互换”。如果是要把a=1,b=2,c=3“轮换”为a=2,b=3,c=1的话,
那就用下面的语句实现:
t=a;
a=b;
b=c;
c=t;
如果是要把任意大小顺序的三个变量,通过交换变为从小到大排列,可以采用以下的程序段:
int
a,b,c,t;
scanf("%d
%d
%d",&a,&b,&c);
if(a>b){t=a;
a=b;
b=t;}
if(a>c){t=a;
a=c;
c=t;}
if(b>c){t=b;
b=c;
c=t;}
printf("从小到大的排列是:%d
%d
%d\n",a,b,c);

热点内容
故乡的密码标题运用了什么手法 发布:2025-01-21 06:00:20 浏览:724
java新浪微博 发布:2025-01-21 06:00:07 浏览:887
php防止注入 发布:2025-01-21 06:00:04 浏览:815
华为honor6a如何重置密码 发布:2025-01-21 05:37:30 浏览:987
黑客编程意思 发布:2025-01-21 05:34:34 浏览:18
数据库服务器远程 发布:2025-01-21 05:34:34 浏览:700
ftp断点续传工具 发布:2025-01-21 05:13:42 浏览:990
哈弗h9买哪个配置划算 发布:2025-01-21 05:01:19 浏览:641
微信视频如何重新缓存 发布:2025-01-21 04:44:41 浏览:880
pdf压缩文件大小 发布:2025-01-21 04:40:24 浏览:799