猿问

关于数组中的问题

在数组中的排序中换位为。

int temp=num[i];

num[i]=num[i+1];

num[i+1]=temp; 为什么这里不能写num[i+1]=num[i];

qq_我输过但从未怕过_0
浏览 1643回答 3
3回答

子木李

楼主需要实现的是数组中交换值吧,在num[i]=num[i+1]的时候,次数num[i]的值已经被num[i+1]替换了,也就是说它原来的值不在了,如果后面再写num[i+1]=num[i]时,其实num[i+1]的值没有变化,因为你前面把num[i]的值赋成了i+1的值,所以为了保留num[i]的值,引入一个临时变量temp,用来保存num[i]的值

Caballarii

这么说吧,两个小朋友坐着两张凳子,他们要交换位置,但不可以站着等,并且一次只能一个小朋友移动。那么总不能小朋友A不能直接坐到小朋友B身上吧,这样的话小朋友B就出不来了。所以正确的方法是搬来第三张凳子,小朋友A去坐第三张,小朋友B坐到小朋友A原来的位置上,小朋友A再从第三张凳子坐到小朋友B原来的位置上。这里也是一样的道理。

慕男婶

因为 = 左边是要赋的值,= 右边是接收的值。在数学中,a = b 就等于b = a但是在编程中,num[i+1]=num[i]; // 把num[i]的值赋予num[i+1]反过来的话,赋值顺序就反了num[i]=num[i+1]; // 把num[i+1]的值赋予num[i]
随时随地看视频慕课网APP

相关分类

Java
我要回答