/ / Sqrt e Math in Arrays - java

Sqrt e Math in Arrays - java

Eu estou tendo dificuldade em entender como escrevereste array. Eu preciso que ele exagere 10x5 (50 elementos no total), e tenha os primeiros 25 elementos iguais ao sqrt do índice em que ele está, e os últimos 25 a igual a 3 * o índice. Sim, isso é lição de casa, mas eu não estou pedindo para você fazer isso por mim, eu só preciso de ajuda! Estou recebendo erros ao usar Math dizendo que eu não posso usar o dobro e o conjunto duplo juntos. Aqui está o que eu tenho até agora:

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]);
}
}
}

Respostas:

1 para resposta № 1

Porque alpha é uma matriz multidimensional, você não pode se referir a seus elementos como uma matriz normal.

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

No exemplo acima, o array myarray é multidimensional. Se eu quisesse acessar o segundo elemento na primeira matriz, eu o acessaria assim:

int myint = myarray[0][1];

Você está tentando acessar uma matriz multidimensional usando o acesso para uma matriz normal. mudança

alpha[count]

para

alpha[0][count]

ou similar.

Ler Aqui para mais informações sobre matrizes multidimensionais.


0 para resposta № 2

você definiu alpha como um array 2D com digamos 10 itens na primeira dimensão e 5 na segunda, e 5x10 é 50 elementos.

Ao usar sua matriz para atribuir valores a esses elementos, você deve chamar a matriz usando 2 índices, um para cada dimensão:

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

Então, os primeiros 25 elementos da esquerda para a direita na ordem da dimensão serão:
[0 a 9] [0] e [0 a 9] [1] e [0 a 4] [2]
os próximos 25 serão
[4to9] [2] e [0 a 9] [3] e [0 a 9] [4]

a partir de então eu não posso lhe dar as respostas para o dever de casa, mas os loops devem ficar assim:

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);
}

e você pode descobrir o resto


0 para resposta № 3

O 10x5 parece ser uma restrição de saída, não uma restrição de design.

Você está usando Java, portanto use construções Java, não construções de linguagem C; armazenar especificamente os valores em uma lista e não em uma matriz.

Aqui estão algumas dicas:

  1. Listar <Integer> valuesList = new ArrayList <Integer> ();
  2. para (índice int = 0; índice <25; índice ++)
  3. Inteiro currentValue = Math.sqrt (index);
  4. valuesList.add (currentValue);
  5. para (índice int = 25; índice <50; índice ++)
  6. Inteiro currentValue = index * 3;
  7. valuesList.add (currentValue)
  8. int count = 1;
  9. para (Integer current: valuesList)
  10. if ((count% 5) == 0) // escreve uma nova linha.
  11. System.out.print (atual);
  12. contagem ++