Oii. Eu fiz um código para um exercício e gostaria de saber se está correto ou não. Eu usei 5 valores para ser mais fácil de eu ver se está correto ou não
Leia um vetor de 40 posições e acumule os valores do primeiro elemento no segundo, deste no terceiro e assim por diante. Ao final, escreva o vetor obtido
package arrays;
import java.util.Scanner;
public class ex8 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a[] = new int[5];
int a1 = 0;
int a2 = 0;
for (int i = 0; i < a.length; i++) {
System.out.println("Digite um valor");
a[i] = s.nextInt();
if (i == 0) {
int aux = a[0];
a[0] = aux;
} else {
a[i] = a[i] + a[i - 1];
}
}
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
O que exatamente está acontecendo nessas duas instruções?
Ariadne, seu código está perfeito, funciona direitinho. Testei aqui com os valores 1, 2, 3, 4, e 5 e funcionou, pois o resultado foi o vetor resultante possuir os valores:
1
3
6
10
15
Você pode até deletar essa linha a[0] = aux que funciona da mesma forma.
Antes de testar sua solução fiz meu próprio algorítmo assim:
package vetorAcumulante;
import java.util.Scanner;
public class VetorAcumulante
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int a[] = new int[5];
int valor;
for(int i = 0; i < a.length; i++)
{
System.out.println("Digite um valor:");
valor = s.nextInt();
if(i == 0)
{
a[i] = valor;
}
else
{
a[i] = valor + a[i - 1];
}
}
for(int i = 0; i < a.length; i++)
{
System.out.println(a[i]);
}
}
}
Dê uma olhada nesse código acima e veja que também é uma solução.
Caso tenha alguma dúvida, pode perguntar aqui.
Abraços!