/ / Sqrt, et Math dans les tableaux - java

Sqrt et Math in Arrays - java

J'ai du mal à comprendre comment écrirece tableau. J'en ai besoin pour imprimer 10x5 (50 éléments au total) et avoir les 25 premiers éléments égaux au sqrt de l'index dans lequel il se trouve et les 25 derniers à 3 * l'indice. Oui, c’est un devoir mais je ne vous demande pas de le faire pour moi, j’ai juste besoin d’aide! Je reçois des erreurs lors de l’utilisation Math en disant que je ne peux pas utiliser double et le tableau double ensemble. Voici ce que j'ai jusqu'à présent:

public class snhu4 {
public static void main(String args[]) {
double alpha[][] = new double[10][5];
double[] sum, sum2;

for (int count=0; count<=25;count++) {
alpha[count]= Math.sqrt(count);
}

for (int count=26; count<=50;count++) {
alpha[count]= count *3;
}

for (int count=0; count<=50;count++) {
System.out.print(alpha[count]);
}
}
}

Réponses:

1 pour la réponse № 1

Car alpha est un tableau multidimensionnel, vous ne pouvez pas vous référer à ses éléments comme un tableau normal.

int myarray[][] = new int[2][2];

Dans l'exemple ci-dessus, le tableau myarray est multidimensionnel. Si je voulais accéder au deuxième élément du premier tableau, j'y accéderais comme ceci:

int myint = myarray[0][1];

Vous essayez d'accéder à un tableau multidimensionnel en utilisant l'accès à un tableau normal. Changement

alpha[count]

à

alpha[0][count]

ou similaire.

Lis ici pour plus d'informations sur les tableaux multidimensionnels.


0 pour la réponse № 2

vous avez défini alpha comme un tableau 2D avec 10 éléments dans la première dimension et 5 dans la seconde, et 5x10 correspond à 50 éléments.

Lorsque vous utilisez votre tableau pour affecter des valeurs à ces éléments, vous devez faire appel au tableau à l'aide de 2 index, un pour chaque dimension:

alpha[i][j] = /*double value*/; //with 0<=i<=9 and 0<=j<=4

Ainsi, les 25 premiers éléments allant de gauche à droite dans l'ordre des dimensions vont être:
[0to9] [0] et [0to9] [1] et [0to4] [2]
les 25 prochains seront
[4to9] [2] et [0to9] [3] et [0to9] [4]

à partir de là, je ne peux pas vous donner les réponses à vos devoirs, mais les boucles devraient ressembler à ceci:

int j;
for(int i = 0; i<25; i++)
{
j=i/10; //integer division will return 0 for i<10, 1 for 10<i<20, etc..
alpha[i%10][j] = Math.sqrt(i);
}

et vous pouvez comprendre le reste


0 pour la réponse № 3

10x5 semble être une contrainte de sortie, pas une contrainte de conception.

Vous utilisez Java, utilisez donc des constructions Java, pas des constructions en langage C; stocker spécifiquement les valeurs dans une liste et non un tableau.

Voici quelques astuces:

  1. List <Integer> valuesList = new ArrayList <Integer> ();
  2. pour (int index = 0; index <25; ++ index)
  3. Valeur entière currentValue = Math.sqrt (index);
  4. valuesList.add (currentValue);
  5. pour (int index = 25; index <50; ++ index)
  6. Valeur entière currentValue = index * 3;
  7. valuesList.add (currentValue)
  8. int compte = 1;
  9. pour (courant entier: valuesList)
  10. if ((count% 5) == 0) // écrit une nouvelle ligne.
  11. System.out.print (actuel);
  12. ++ compte