2017-11-15 14 views
0
import java.util.Scanner; 
import java.util.Random; 

public class Ld364rmc641 { 

public static void main(String[] args) { 

double A[]=new double[20]; 
double B; 
int K,i,n; 

Scanner sc = new Scanner(System.in); 

System.out.println("Ld"); 

System.out.print("K="); 

if (sc.hasNextInt()) 

    K = sc.nextInt(); 

else { 
    System.out.println("input-output error"); 
    sc.close(); 
    return; 
} 
sc.close(); 
if (K==0){ 
    Random r = new Random(); 
    i=0; 
    while (i<20){ 
     A[i] = r.nextDouble()*20-10; 
     i++;  
    } 
} 
else { 
    i=1; 
    while(i<20){ 
     A[0]=0.5; 
     A[i]= A[i-1]+K; 
     i++; 
    } 
} 
System.out.println("A:"); 
i=0; 
do{ 
    System.out.printf("%.2f\t", A[i]); 
    if (i==9)System.out.println(); 
    i++; 
} 
while (i<20); 
for (i=0; i<20; i=i+1) { 
    if(i%2==0) { 
enter code here 
     B = A[i]; 
     A[i] = A[(i+1)/2]; 
     A[(i+1)/2] = B; 
    } 
    else { 
     B = A[i]; 
     A[i]=A[i]; 
    A[i]=B; 
} 




System.out.println("\nA:"); 
for (i=0; i<20; i++) { 
    System.out.printf("%.2f\t", A[i]); 

ニーズこのような二番目の配列にする:二番目の配列

A0 A1はA2がA1

A3はA18

なっなっA19

なりA0

なり

A4はA2

になります

A5はA17

となります。

ここで、コードを書くために書かれていますが、コードは変更する必要があります。残りのコードは問題ありません。たぶん誰かがこの仕事をして、私を助けてくれるかもしれません。あなたが指定されているよう

+0

そうでもインデックスから奇数次に逆転され、インデックス0〜9、および1-19から奇数インデックスに移動され 19〜1?申し訳ありませんが、これはインデックス9,7,5,3,1にオーバーラップを作成します。 – Sammi

+0

多分私はwrong.Firstly 20桁から配列Aを説明した。 – Eriks

+0

Kが0の場合はKと入力し、コードで書いたのでなければランダムな配列を返します.2番目に配列10個の要素を1行に印刷します.3番目は配列Aの要素から配列Bを作成します。第4に、配列Bを10行の要素に続けて印刷します。 – Eriks

答えて

0

これは、アレイ内の項目を整理する必要があります

for (i=1; i<20; i++) { 
    if(i%2==0) { 
     B[i] = A[i/2]; 
    } 
    else { 
     B[i] = A[20-(i+1)/2)]; 
    } 
} 
// If you want to change your original array, then just move each element in B to A: 
for (i=1; i<20; i++) { 
    A[i] = B[i]; 
} 
0-18から
+0

ありがとうございました。残念ながら、何も変わりません。 – Eriks

関連する問題