temp = a a = b b = temp 请问执行以上代码如何将a和b的值交换?

作者&投稿:欧些 (若有异议请与网页底部的电邮联系)
java中怎么理解temp=a+b.temp=a,a=b , 具体点,谢谢~

代码:
public class TempTest {public static void main(String[] args) {int temp=0;int a=1;int b=2;temp = a + b;//在这里就是将a与b的和赋给了temp这个变量System.out.println("temp = a + b======>"+temp);temp = a;//因为a是1,所以就是把a=1赋给了temp;System.out.println("temp = a======>"+temp);a=b;//在这里因为b的值是2,所以就是把b=2赋给了aSystem.out.println("a=b=======>"+a);}} 效果:
temp = a + b======>3temp = a======>1a=b=======>2 希望能帮到你。

a,b 互换。首先将a的值赋给中间变量temp,再把b的值赋给a(此时a的值就是b的值),最后把temp的值赋予b(刚才temp的值已经等于a的值了,就相当于把a的值赋予b)。

int a = 1;
int b = 2;
int temp = a; //定义中间变量先缓存a的值,这时候a=1,b=2,temp=1;
a = b; // 把b的值赋给a,这时候a=2,b=2,temp=1
b = temp; // 把temp的值赋给b,这时候a=2,b=1,temp=1,已经实现交换了。

这就好比我和你交换东西,但是每个人手上只能拿一样东西,那么我找个中间人,我先把东西给中间人,然后你把东西给我,再让中间人把东西给你。


大埔县19825138143: c语言 能不能讲解一下temp=a ;a=b;b=temp -
钊怜红花: a,b 互换.首先将a的值赋给中间变量temp,再把b的值赋给a(此时a的值就是b的值),最后把temp的值赋予b(刚才temp的值已经等于a的值了,就相当于把a的值赋予b).

大埔县19825138143: C语言 按位两次异或是什么意思 -
钊怜红花: 按位两次异或是“a^=b;b^=a;”这样吗,如果是的话,那么 对无符号整数而言等价于如下语句: temp=a; a^=b; b=temp; 相当于a与b异或了一次,值存在a,而旧的a值又赋给了b 如果是“a^=b;b^=a;a^=b;” 其实就是交换两个变量的值 等价于 temp=a;a=b;b=temp; 意义在于,少用一个变量,节省空间 //PS: 按位计算对于计算机语言而言大同小异,我偷了个懒用了javascript来写

大埔县19825138143: if(a<b) {temp=a;a=b;b=temp;}请解释一下这个语句是怎样实现大小比较的?? -
钊怜红花: 假设a=3 b=5 那么(a<b)这句话就成立 temp=3 a=5(因为b=5) b=3(temp=3他保存了a 的值,在a没有变成5之前为3) 最后结果就是a=5,b=3了!

大埔县19825138143: temp = a a = b b = temp 请问执行以上代码如何将a和b的值交换? -
钊怜红花: int a = 1; int b = 2; int temp = a; //定义中间变量先缓存a的值,这时候a=1,b=2,temp=1; a = b; // 把b的值赋给a,这时候a=2,b=2,temp=1 b = temp; // 把temp的值赋给b,这时候a=2,b=1,temp=1,已经实现交换了.这就好比我和你交换东西,但是每个人手上只能拿一样东西,那么我找个中间人,我先把东西给中间人,然后你把东西给我,再让中间人把东西给你.

大埔县19825138143: temp=a%b;a=b;b=temp;语句的意思 -
钊怜红花: 这是求最大公约数的算法.将a除以b的余数赋值给temp,再将b值给a,再将temp值给b,循环求,当最后temp=0时,b就是最大公约数

大埔县19825138143: 若变量已正确定义,要将a和b中的数进行交换,C语句 -
钊怜红花: 不走出范围,是可以 的

大埔县19825138143: temp=a%b;a=b;b=temp;怎么理解 -
钊怜红花: 这个题我遇到过,c语言的知识.temp=a%b是对a除b取模(也就是余数部分付给a当a的值)a=b;b=temp 的意识是将a和b的值进行互换.互换的结果也就是 a%b=b; a=b;

大埔县19825138143: C语言编程题:键盘输入三个数,由大到小输出 -
钊怜红花: main() {int a,b,c,temp;scanf("%d,%d,%d",&a,&b,&c);if(a<b){temp=a,a=b,b=temp;}if(b<c){temp=b;b=c;c=temp;}if(a<b){temp=a;a=b;b=temp;}printf("%d,%d,%d",a,b,c);getch(); } 如果是多个数的话,那就不能这样做了,会烦死的.

大埔县19825138143: 从小到大排序3个实数 if(a>b) {temp=a;a=b;b=temp;}/*a< - ->b 什么意思,为什么要这么写_
钊怜红花: 这位,肯定是新手.将3个数从小到大排序,if(a>b) {temp=a;a=b;b=temp;},这句话是说如果a>b,则将a和b交换,后面的/*a<- ->b你肯定是少了一个*/, 这是注释.其实就是不管a和b是否进行交换,保证a和b的大小为a>c即你要求的顺序,最后你只要按顺序输出a、b、c即可.

大埔县19825138143: 在程序中有以下代码片段:A=5 B=10 TEMP=A A=B B= TEMP变量A的值( )变量B的值( )在线急求 -
钊怜红花: A=5 B=10 TEMP=A 说明TEMP=5 A=B A重新赋值为10(B=10) B=TEMP 重新赋值为5(TEMP=5) 结果A的值(10 )变量B的值(5 ) 程序是一步一步的执行,以最后结果为准

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网