2017-04-21 2 views
0

En utilisant Java, je suis censé créer un programme qui stocke le carré des nombres 0, 1, 2 & 9 dans un ArrayList de 10 éléments.Square Array Programme

J'ai créé une partie du code qui affiche les nombres et ses carrés mais le programme descend tout droit avec tous les nombres et ne semble pas organisé. Quelqu'un peut-il me aider à l'écrire comme comme ceci:

Numéro: 0 carré: 0

Numéro

: 1 place: 1

: 2 carré: 4

code

public static void main(String[] args) { 
    int[] temp = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 

    for (int value : temp) { 
     System.out.println(value); 
    } 

    for (int i = 0; i < temp.length; i++) { 
     temp[i] = (int) Math.pow(temp[i], 2); 
    } 

    for (int value : temp) { 
     System.out.println(value); 
    } 
} 
+0

[Java formatage de sortie pour cordes] (http://stackoverflow.com/questions/4418308/java-output-formatting-for-strings –

+0

Si cela est supposé utiliser un 'ArrayList', où est son utilisation? Ou n'étiez-vous pas vraiment en train de dire un ArrayList? – KevinO

Répondre

1

Vous avez juste besoin d'une boucle comme ceci:

public static void main(String[] args) { 
    int[] temp = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 

    for (int i = 0; i < temp.length; i++) { 
     System.out.println(temp[i] + "\t" + (int)Math.pow(temp[i], 2)); 
    } 
} 

OutPut

0 0 
1 1 
2 4 
3 9 
4 16 
5 25 
6 36 
7 49 
8 64 
9 81 

Si vous souhaitez stocker vos résultats dans un ArrayList vous pouvez utiliser:

List<int[]> array = new ArrayList<>();//create a List which take an array of int 

int arr[] = new int[2];//create a temporary array of 2 elements 

for (int i = 0; i < temp.length; i++) { 
    System.out.println("Number: " + temp[i] + " \tSquare: " + (int) Math.pow(temp[i], 2)); 
    arr[0] = temp[i];//add your number to your array pos 1 
    arr[1] = (int) Math.pow(temp[i], 2);//add the power to the 2ed position 
    array.add(arr);//add your array to your list 

} 
+0

Je crois que vous pouvez simplement faire 'int [] temp = new int [10];' et ensuite au lieu de sortir 'temp [i]' juste sortir 'i'. J'aurais aussi tendance à utiliser String.format ("% 2d \ t% 3f") dans la sortie pour aligner les nombres. – KevinO

+0

@KevinO À ce stade, le tableau n'est pas nécessaire, car tout peut être fait avec une boucle for. – Romoku

+0

La question de l'OP nécessitait de placer les résultats dans un tableau. – KevinO

0

Essayez ceci:

public static void main(String[] args) { 
    int[] temp = {0, 1,2,3,4,5,6,7,8,9}; 

    for (int value : temp) { 
     System.out.println("number : "value); 
    } 

    for (int i = 0; i < temp.length; i++) { 
    temp[i] = (int) Math.pow(temp[i], 2); 
    } 

    for (int value : temp) { 
    System.out.println(" square : " + value + "\n"); 
    } 
} 
0
public static void main(String[] args) { 
    int[] temp = {0, 1,2,3,4,5,6,7,8,9}; 

    // here you are printing all your numbers in the array, so the output will be: 
    // 0 
    // 1 
    // ... 
    // 9 
    for (int value : temp) { 
     System.out.println(value); 
    } 


    // after that, you calculate and store them in the same array; so your array now look like this: 
    // [0,1,4,9,...,81] 
    for (int i = 0; i < temp.length; i++) { 
     temp[i] = (int) Math.pow(temp[i], 2); 
    } 


    // here you are printing again your array 
    // 0 
    // 1 
    // 4 
    // ... 
    // 81 
    for (int value : temp) { 
     System.out.println(value); 
    } 
} 

pour obtenir le résultat désiré, vous devez calculer le nombre avant l'impression tout ... une option sera de créer un autre tableau

int[] square = new int[9]; 

calculate dans la première boucle et enregistrer le résultat sur la place tableau et les imprimer, quelque chose comme ceci:

for (int i = 0; i < temp.length; i++) { 
    square[i] = (int) Math.pow(temp[i],2); 
    System.out.println("number " + temp[i] + " square: " + square[i]); 
} 
0

en supposant que la question initiale qui faisait référence à une ArrayList était correcte (l'exemple de l'OP n'avait un tableau), et en supposant que les résultats sont censés être stockés dans le tableau (par la question), alors ce qui suit fonctionnera:

public static void main(String[] args) 
{ 
    // instantiate ArrayList 
    List<Double> array = new ArrayList<>(); 

    // load the values 
    for (int i = 0; i < 10; ++i) { 
    array.add(i, Math.pow(i, 2)); 
    } 

    // output 
    for (int i = 0; i < array.size(); ++i) { 
    System.out.println(String.format("%2d\t%3.0f", i, array.get(i))); 
    } 
} 

Sortie:

0  0 
1  1 
2  4 
3  9 
4 16 
5 25 
6 36 
7 49 
8 64 
9 81