Erro no codigo e fica dando isso," variable valor1 might not have been initialized String stringFormatada = String.format("Os valores sao %3d, %3d", valor1, valor2);

import java.util.Scanner;

public class Vet1 {
  
  public static void main(String arg[]) {
    Scanner digito = new Scanner(System.in);
    
    int larg = 2;
    int vtr[] = new int[larg];
    int cont = 0;
    int valor1, valor2;
   
    
    for (int i = 0; i < vtr.length; i++) {
      System.out.println("entre com o valor: ");
      valor1 = digito.nextInt();
      valor2 = digito.nextInt();
      cont = cont + 1;
      vtr[i] = cont;
    }
    
    for (int i = 0; i < vtr.length; i++) {
      String stringFormatada = String.format("Os valores sao %3d, %3d", valor1, valor2);
      System.out.println(stringFormatada);
    }
  }
}

O fonte que você postou não possui nenhuma variável chamada num.
Ou você postou o fonte errado ou está tentando compilar o fonte errado.

1 curtida

coloquei errado, já editei

Um problema no código é que as variáveis valor1 e valor2 estão declaradas mais de uma vez.

1 curtida

Tirei e continua com outro erro, variable valor1 might not have been initialized
String stringFormatada = String.format(“Os valores sao %3d, %3d”, valor1, valor2);

Para corrigir o erro, basta vc inicializar as variáveis com algum valor, ex.:

int valor1 = 0;
int valor2 = 0;

Porém, vc precisar ver se isso faz sentido para o seu programa. Por exemplo, o segundo FOR não deveria está usando os valores do array vtr para apresentar a informação no console?

Obs.: Nem parei para entender o que seu programa tem que fazer. Apenas vi o erro que estava acontecendo e indiquei como contornar.

1 curtida

Essa é a pergunta (Crie um programa, no qual terá um vetor de inteiros, cujo tamanho será
definido pelo valor de uma variável local, que permita ao usuário entrar com
os valores. Depois, estes valores serão apresentados na ordem inversa à da
entrada.)

Para ler os valores do array, vc precisa apenas de uma variável (não precisa de valor1 e valor2). Para apresentar os valores do array de forma inversa, vc pode:

  • já incluir os valores no array onde o primeiro valor informado fique na última posição e o último valor na primeira posição; ou
  • imprimir o array a partir da última posição.

Veja esses dois FORs:

O que vc fez. Vai da primeira posição (zero) até a última (tamanho do array)

for (int i = 0; i < vtr.length; i++) {

a impressão seguirá a ordem normal, ex.: 0, 1, 2, 3


Já essa outra forma vai da última posição (tamanho do array - 1) até a primeira (zero):

for (int i = vtr.length - 1; i >= 0; i--) {

a impressão começará da última posição até a primeira, ex.: 3, 2, 1, 0


Com base nas opções que citei, e nas duas formas do FOR, tente montar a lógica. Boa sorte.

1 curtida

Muito obrigado de verdade!!

1 curtida

Massa! Não se acanhe. Qualquer dúvida que for, só postar aqui no fórum. Flws!

1 curtida