Rumah  >  Soal Jawab  >  teks badan

java - 为什么输出的结果为4321?

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?

黄舟黄舟2744 hari yang lalu659

membalas semua(4)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-18 10:51:09

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

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:51:09

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

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:51:09

    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;

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:51:09

    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

    balas
    0
  • Batalbalas