int[] num={1,2,3,4,5,6,7};
for(int i=0;i<num.length;i++){
num[i]=num[num.length-1-i];
System.out.println(num[i]);
}
为什么这样不能实现数组的倒序输出? 错在哪啊
for(int i=0;i<num.length;i++){
num[i]=num[num.length-1-i];
System.out.println(num[i]);
}
为什么这样不能实现数组的倒序输出? 错在哪啊
for(int i=0;i <num.length;i++){
num[i]=num[num.length-1-i];
System.out.println(num[i]);
} 开始的时候, i = 0, num[0] = num[6], 但当i = 6时, num[6] = num[0], 这个变成num[0]与最后num[6]都为最开始的num[6]了.可以考虑如下:
int[] num={1,2,3,4,5,6,7};
for(int i=0;i <num.length / 2;i++){
//逆序只要交换第一个数与最后一个数, 第二个数与倒数第二个数, 直到数组的中间即可.
int temp = num[i];
num[i]=num[num.length-1-i];
num[num.length-1-i] = num[i];
} for (int i = 0; i < num.length; ++i) {
System.out.println(num[i] + "\t");
}
public class r{
public static void main(String args[]){
{
int temp;
int[] num={1,2,3,4,5,6,7};
for(int i=0;i <num.length;i++){
if(i<3){temp=num[i];
num[i]=num[num.length-1-i];
num[num.length-1-i]=temp;
}
System.out.println(num[i]);
}
}
}
}后面一般没有修改
要倒序怎么不用for(int i=num.length;i>=0;i--)呢????
for(int i=num.length-1;i >=0;i--){
System.out.println(num[i]);
}
这样不能倒序是吗?
应该知道交换a,b值的函数怎么写吧
void swap(int a, int b) {
int temp;
temp = a;
a = b;
b = temp;
}
你的程序中少了temp这个中间变量,所以就把一部分值给覆盖了.其实你做倒序的话,建议用容器(Collection),它自己带有逆序的方法.
Collection<Integer> c = new ArrayList();
c.add(1);
c.add(2);
c.reverse();
如果你换成
int temp=num[num.length-1-i];
System.out.println(temp);
这样的话,num数组的就不会改变,还是 {1,2,3,4,5,6,7};