• 1-3*交换变量


    输入两个整数a,b,交换两者的值,然后输出。
    样例输入:
    824 16
    样例输出:
    16 824

    1.增加零时变量temp,交换a,b值

     1 #include<stdio.h>
     2 int main()
     3 {
     4 int a,b,temp;
     5 scanf("%d%d",&a,&b);
     6 temp=b;
     7 b=a;
     8 a=temp;
     9 printf("%d %d
    ",a,b);
    10 return 0;
    11 }

    2.不增加变量,交换a,b值(很少使用:只有定义了加减法的数据类型才能才能采用这种方法)

     1 #include<stdio.h>
     2 int main()
     3 {
     4 int a,b;
     5 scanf("%d%d",&a,&b);  //  a的值  b的值
     6 a=a+b;          //   a+b    b
     7 b=a-b;          //  a+b     a 
     8 a=a-b;          //   b     a
     9 printf("%d %d
    ",a,b);
    10 return 0;
    11 }

    3.最简单的方法--直接交换a,b输出位置

    1 #include<stdio.h>
    2 int main()
    3 {
    4 int a,b;
    5 scanf("%d%d",&a,&b);
    6 printf("%d %d
    ",b,a);
    7 return 0;
    8 }
    //在算法竞赛中是在比谁能更好的解决问题,而不是比谁写的程序看上去更高级

    4.用异或运算

    1 #include<stdio.h>
    2 int main()
    3 {
    4 int a,b;
    5 scanf("%d%d",&a,&b);
    6 a^=b^=a^=b;
    /*
    a^=b^=a^=b;是
    {
    a^=b;
    b^=a;
    a^=b;
    }
    的简写
    ^异或运算:二进制比较,相同为0,不同为1;
    假设
      

          a=10100111
          b=00000110
    a=a^b;  a=10100001
    b=b^a;  b=10100110
    a=a^b;  a=00000110
    可以看到此时,ab的值已经交换

    */
    7 printf("%d %d ",a,b); 8 return 0; 9 }
    好奇一切知识的咸鱼<@_@>
  • 相关阅读:
    js制作倒计时
    SpringBoot tomcat 上传文件大小受限制1M,解决办法
    SQL关于not,exists说法,以及差异
    SQL语句关于树查询
    树(Tree)形插件
    python之函数用法fromkeys()
    模块
    补充零散知识
    pickle模块
    python中元组与列表的区别
  • 原文地址:https://www.cnblogs.com/xybz/p/9977757.html
Copyright © 2020-2023  润新知