当前位置:首页 » 编程语言 » c语言实现两个数的交换代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言实现两个数的交换代码

发布时间: 2023-03-24 07:31:09

‘壹’ 用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语言编程,如何做两数交换程序

现设一个变量a
int
a;
a=m;把m的值赋给a,此时a=3,m=3,n=5;
m=n;把n的值赋给m,此时a=3,m=5,n=5;
n=a;把a的值赋给n,此时a=3,m=5,n=3;
就完成m和n的两数交换

‘叁’ C语言 编写程序,从键盘上输入两个不同的整数,让两个整数实现数据交换。怎么解答 求大神

#include <stdio.h>
int main()
{

int a, b;
printf("请输入两个不同的整数:");
scanf("%d %d", &a, &b);
if (a != b)
{
int tmp = a;
a = b;
b = tmp;
printf("交换后的数为%d %d\n", a, b);
}
else
{
printf("两个数相等,无需交换!\n");
}
return 0;
}

‘肆’ c语言交换两个数的问题

两段代码的差异是:
第一段代码:将a、b两个数的地址传入swap()函数,此函数内部拿着这两个数的地址,将两个地址下的值做了交换;
第二段代码:将a、b两个数的地址传入swap()函数,此函数内部将这两个地址彼此做了交换(即两个指针所指的地址发生了互换,但相应地址下的数并没有变化)。因为对于函数swap()来说,传入的两个地址是值传递形式的,在其内部是局部作用域下的两个变量,完成这两个地址“值”的交换,并不能对调用时的实参产生影响。故而交换失败。
另外,再给你个无需中间变量交换两个数值的写法:
a
=
b
-
a
+
(b
=
a);   
//
无需中间变量交换a、b的值

‘伍’ c语言函数的使用,定义一个交换函数 实现2个数字的交换。

void Swap(int&x,int&y)

{

int temp=0;

temp=x;

x=y;

y=temp;

}

int main()

{

int a=1;

int b=2;

Swap(a,b);

cout&lt;&lt;"a="&lt;&lt;a&lt;&lt;endl;

cout&lt;&lt;"b="&lt;&lt;b&lt;&lt;endl;

system("pause");

return 0;

}

运行结果:

(5)c语言实现两个数的交换代码扩展阅读:

用指针交换:

void Swap(int*x,int*y)

{

int temp=0;

temp=*x;

*x=*y;

*y=temp;

}

int main()

{

int x=1;

int y=2;

Swap(&x,&y);

printf("x=%d,y=%d ",x,y);

system("pause");

return 0;

}

运行结果:

X=2;Y=1

‘陆’ C语言交换两个数字的代码

首先要捋顺一下,先看第一段程序。这段程序的目的就是为了将两个变量的数值进行交换。此时要明白指针的使用方法,这里的交换函数是void swap(int &x, int &y),即无返回值的函数,函数传递的参数是int &x和int &y,这两个东西是什么呢?这两个东西是定义的引用,而这个我们就可以理解为是两个用来存储传递进来的参数的地址的变量(这么说可能有点乱,其实就是将调用该函数是时传递进来的变量的地址给这两个参数),所以如果在这个swap函数中对这两个参数操作时,实际上就是对传递进来的那两个变量进行操作。至于你问的关于整型的问题,这个也很好理解,在c语言里地址就是整型的,而这两个变量定义的时候也是int整型的,所以无论是地址还是值都是整型的,而又因为*a和*b是一个指针指向的值,所以*a、*b是整型,而&a、&b是指针的地址,所以也是整型。

接下来看你第二段程序(你自己写的这个):
看程序前请仔细查看关于函数方面的资料,至于你这个return为什么是错的这个问题其实很简单,首先要了解一个函数的定义,定义函数简单的可以分为有返回值和无返回值的,有返回值的定义类似这样
int abc();
float bcd();
如上所示,函数名什么的都好理解,函数名前面的"int"和"float"是指函数返回的类型,即你这个函数在执行完之后需要用return语句返回一个值,而这个返回类型就是指这个返回值的类型。
还有一种是不需要返回值的,即
void abc();
void cde();
这类函数在执行完成后不需在最后添加return语句来返回值,如果添加了也用不了。
而你写的这个函数定义的是
int swap(int x,inty)
这里声明的是一个需要返回整型变量的函数,而这个函数里你的返回值语句return后没有跟任何变量或值,程序不知道你返回的是什么东西,所以会报错,这里一般都会填写return 0;表示程序执行完成。当然这个0也可以换成整型的变量。

最后说一下你这个程序,你这个程序在执行完成后是不会将需要交换的变量a和b的值进行交换的。这个关系到形参和实参的概念,请仔细查看书籍或看一些例子,你这个只是将形参的值交换了,真正的需要交换的值不会改变,也就是说你只是将a和b的两个值复制了一份,然后将复制了的那个交换了,当swap函数完成后又将复制了的那份删除掉了,所以说,不管怎样最初的a和b都没有受到任何影响。

‘柒’ 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中
此方法,还可以用异或运算来实现,原理相同。