在数组中的排序中换位为。int temp=num[i];num[i]=num[i+1];num[i+1]=temp; 为什么这里不能写num[i+1]=num[i];
3 回答
已采纳
子木李
TA贡献46条经验 获得超27个赞
楼主需要实现的是数组中交换值吧,在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
TA贡献1123条经验 获得超629个赞
这么说吧,两个小朋友坐着两张凳子,他们要交换位置,但不可以站着等,并且一次只能一个小朋友移动。
那么总不能小朋友A不能直接坐到小朋友B身上吧,这样的话小朋友B就出不来了。
所以正确的方法是搬来第三张凳子,小朋友A去坐第三张,小朋友B坐到小朋友A原来的位置上,小朋友A再从第三张凳子坐到小朋友B原来的位置上。
这里也是一样的道理。
慕男婶
TA贡献98条经验 获得超73个赞
因为 = 左边是要赋的值,= 右边是接收的值。
在数学中,
a = b
就等于
b = a
但是在编程中,
num[i+1]=num[i]; // 把num[i]的值赋予num[i+1]
反过来的话,赋值顺序就反了
num[i]=num[i+1]; // 把num[i+1]的值赋予num[i]
添加回答
举报
0/150
提交
取消