已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序

已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序,第1张

    通过一个中间变量来实现数据之间的交换

    int a = 1,b = 10

    int temp = a     // 将a的值先赋值给中间变量temp

    a = b    //然后把b的值赋值给a

    b = temp    //最后再把temp中存的a的值赋值给b

    System.out.println(a+" "+b)

    这种交换过程就像一个圆环,圆环上有三个值,顺时针或逆时针的将值赋给前(后)的变量。从而实现数据的交换,许多排序方法也是通过中间变量来达到小的数值放前面,大的数值放后面。

    不使用中间变量,通过加减运算符实现两个变量之间的数据交换。

    int a = 10, b = 20

    a = a+b    //此时的a=30

    b = a-b    //b=30-20=10,a=30不变

    a = a-b    //a=30-10=20,a改变

    System.out.println(a+" "+b)

    不使用中间变量,通过位运算符实现两个变量之间的数据交换。

    int a = 11, b = 14    //二进制:a=8 —— 1011,b=14 —— 1110

    a = a^b         // a^b,异或运算,只有对应位数的值相等时才能返回1,否则返回0

                        // 所以a=a^b=1011^1110=1010

    b = a^b     // b=a^b=1010^1110=1011,即b=原本a的值

    a = a^b    // a=a^b=1010^1011=1110,即a=原本b的值

    System.out.println(a+" "+b)

/*

编写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>

程序已调好,直接运行即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8111036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存