java - 为什么输出的结果为4321?
黄舟
黄舟 2017-04-18 10:49:09
0
4
698
Char  c[]={'1','2','3','4'}
for(int i=0;i<c.length/2;i++){
    char d=c[i];
    c[i]=c[c.length-(i+1)];
    c[c.length-(i+1)]=d;
}
for(int i=0;i<c.length;i++){
    System.out.println(c[i]);
}

为什输出的结果为4321?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(4)
Peter_Zhu

Gelung dua kali, kali pertama 1 dan 4 ditukar, kali kedua 2 dan 3 ditukar

Peter_Zhu

Kenapa tidak? '1' dan '4' ditukar, '2' dan '3' ditukar.

伊谢尔伦

Apabila i = 0;
char d=c[i];
Tetapkan nilai c[0] kepada d, iaitu 1; ,4] , tetapi d mempunyai nilai awal, iaitu 1;
[Maksud operasi adalah untuk meletakkan pihak yang ditukar dalam kedudukan terbiar]

c[i]=c[c.length-(i+1)];Tetapkan nilai c [3] hingga c[0] ;
Pada masa ini, tatasusunan c ialah [4,2,3,4], dan nilai d ialah 1;
[Maksud operasi adalah untuk memberikan menukar nilai sisi B ke sisi A]

c[c.length-(i+1)]=d;Tetapkan nilai d, iaitu nilai 1 c[0] pada permulaan, kepada c[3]; nilai tatasusunan c ialah [4,2,3,1], dan nilai d ialah 1; A, kepada B; akhirnya, pertukaran nilai A dan B dicapai]

Apabila i ialah 1,

d ialah c[1], iaitu 2
Pada masa ini, tatasusunan c ialah [4,2,3,1] dan nilai d ialah 2; char d=c[i];

Tetapkan nilai c[2] kepada c[1]
Pada masa ini, tatasusunan c ialah [4,3,3,1], dan nilai d ialah 2;c[i]=c[c.length-(i+1)];

Tetapkan nilai d, iaitu nilai 2 bagi c[1] pada permulaan, kepada c[2]; tatasusunan c ialah [4,3,2,1], dan nilai d ialah 2;
Tamatkan yang pertama untuk gelung c[c.length-(i+1)]=d;

小葫芦

Pada asasnya ia adalah operasi swap
Contoh
a = 1 b = 2 => b = a a = c
Jika ini boleh:
a =1 , b = 2;
a,b:=b,a;
Kelihatan lebih ringkas

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan