C语言写的交换两个数的函数不起作用,哪里有问题
函数调用了,是你写的有问题。比如你第一次调用 swap(n1,n2),这个时候程序把n1,n2的值传给p1,p2,然后p1,p2的值交换了,但是你需要的n1,n2没有变化。
函数参数传递有两种形式:一种是值传递,一种是地址传递。(1)值传递属于单向传递,即形式参数值发生变化,不影响实际参数值的变化。如题:形式参数x,y的值交换了,但是影响不到实际参数a,b,故a,b的值未发生交换。(2)地址传递是双向传递,即形式参数值发生变化,影响到实际参数值。
你这代码问题在于:ee参数int m,int n是传值,m,n交换对a,b没有影响。方法1:定义函数int ee();不传值,直接把a,b定义成全局变量。方法2:定义函数int*ee();不传值,ee函数中用static定义数组[2]代替m,n。返回这个数组。在main函数中接收并打印。
第一,你输入的时候格式不正确,你写的scanf语句中两个数之间是不存在“,”的,还有就算你输入的是111空格222,输出的结果还是原来你输入时的顺序,两者没有交换,因为传参数分为传参和传地址,只有通过传地址才能达到预期的效果,其他楼有正确的答案,你可以参考一下。。
用C语言编写程序实现两个整数交换值
/ 编写c语言程序,实现交换两个变量值的操作。要求:使用形参为指针的函数swap完成交换功能。主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换 输出交换前后的变量值进行比较。
思路:先求出这个两位数十位和个位数,把个位乘以10加上十位上的数就是交换后的数。
方法1: 使用一个临时变量来进行保存,这应该也是大家最容易想到的方法,话不多说,直接上代码。
不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:include stdio.h// 交换给定指针指向整型变量的值。
C语言ab互换
函数点用完之后,就是输出a和b的值看一看是否互换了。首先,a和b的地址传给x和y,通过指针直接对a和b的值进行操作。最后,就是调换*x和*y的值,这样就是实现了a和b的值。
第一个传递的是值,就是说将实参的值赋值给形参了,就相当于int a,b; a=b; a的值改变了,并不影响b的值。第二个传递的是地址,数组名表示的就是数组的首地址,所以形参 char a[] 其实就是 char *a;将实参的地址赋值给 a了,所以形参改变了,实参也改变了。
方法 1:(引进变量)可以认为a、b、c各占一个小格,小格里可以放入数字。
本流程是输入个数,从大到小的顺序输出,首先判断a、b的关系,如果ab,那么ab互换,也是就是确保a是大的,第二步,如果如果ac,也就是c最大,输出顺序是c b a ,否则就判断b c 的关系。。
c语言,三个数a,b,c按大小顺序输出,求流程图
1、先打开DEV C++软件,并点击“新建源代码”。
2、程序分析:我们想办法把最小的数放到a上,先将a与b进行比较,如果ab则将a与b的值进行交换,然后再用a与c进行比较,如果ac则将a与c的值进行交换,这样能使a最小。
3、-12-07 c语言,计算并输出3个float型数的最大值,并画出流程图 2013-10-05 用户输入三个数,通过计算机求出这三个数中的最大最小值。
定义两个变量ab如何用c语言编程使两个变量的值能相互交换
加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失 a = a + b;b = a - b;a = a - b;异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。
/ 编写c语言程序,实现交换两个变量值的操作。要求:使用形参为指针的函数swap完成交换功能。主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换 输出交换前后的变量值进行比较。
a=a+b这个得到的是a和b的和;也就是这一步运行之后当前的a的值就是a,b之和。b=a-b,既然a是他们两个的和,那么a-b得出的肯定是最初的a的值;这一步运行之后,b的只就是原始a的值;a=a-b,既然b是原始a的值,a是原始a和原始b的和,那么差值肯定就是原始b的值。
最好用异或,因为用+或-之类的有造成溢出的可能。
有两种方式可以不使用中间变量,交换同类型的变量a,b的值:1 .使用加法操作a+=b; b=a-b;a -= b;2 .使用异或操作:a^=b;b^=a;a^=b;C语言运算符是说明特定操作的符号, 它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。
问一道C语言的问题
这个程序使用了一个while循环,不断增加兔子的数量,直到找到一个符合条件的数量。条件是兔子数量除以 1 的余数都为 1,即每个人都能分到一只兔子且没有剩余。最后,程序输出符合条件的最小兔子数量。
根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。init函数为输入并返回动态数组。
c语言面试经常问到的问题有:C语言的主要特征是什么?C是一种过程语言。C语言的主要功能包括对内存的低级访问,简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。i ++和++i有什么区别?1)表达式“i ++”返回旧值,然后递增i。
do{}while()这种是,先进入一次循环体,然后才判断是否满足条件,注意,这种方式是无论条件是否满足,都会循环一次,另外,它的退出条件是不满足了,才退出。
说实话要是这几个问题只要理解了C语言的人,怎么可能不明白。很多人没注意,说明他们还没学懂。当然我也不是在自夸,我也是初学者,可是我还是为楼上几位悲哀。