Informática, perguntado por xremix20, 11 meses atrás

Olá pessoal estou com uma dúvida eu tenho que atribuir o proprio indice ao vector. eu tentei assim mas penso que não seja isto eu penso que seja quando digitar 4 ele lê a posição 4 do indice ou seja fica 4 v[4]
Será que me podem ajudar?
O código é o seguinte:


public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.println("Atribuidor de vector com seu proprio Indice ");
System.out.println("Introduza o tamanho do Vector: ");
int n = teclado.nextInt();

int dim[] = new int[n];

System.out.println("Listagem de numeros no Vetor");
for (int i = 0; i < dim.length; i++) {
System.out.printf("numero: %d \n %d v[%d] ",n, i, i);
int v = teclado.nextInt();


dim[i] = v;



}
}
}

Soluções para a tarefa

Respondido por bokomoko
1
o programa contém vários erros. 

O primeiro é que a declaração do programa principal está errada. 
Vamos colocar o código corretamente identado aqui

01 public static void main(String[] args) {
02  Scanner teclado = new Scanner(System.in);
03  System.out.println("Atribuidor de vector com seu proprio Indice ");
04  System.out.println("Introduza o tamanho do Vector: ");
05  int n = teclado.nextInt();
06 int dim[] = new int[n];
07  System.out.println("Listagem de numeros no Vetor");
08 for (int i = 0; i < dim.length; i++) {
09    System.out.printf("numero: %d \n %d v[%d] ",n, i, i);
10   int v = teclado.nextInt();
11    dim[i] = v;
12  }
13 }
14 }

Observe que você abriu 2 { e fechou 3 }. Isso não pode. tem que abrir { e fechar } de forma coerente.

Da linha 2 até a linha 6 está tudo certo. Você leu o valor n do teclado e dimensionou um vetor chamado dim com n elementos inteiros.

Aí começa os problemas
O for na linha 8 está correto. Ele começa de 0 e vai até o número de elementos do vetor dim, de um em um. Correto o for...

Na linha 9 baixou a pomba-gira da doideira. Ficou maluco 
System.out.printf("numero: %d \n %d v[%d] ",n, i, i);
Esse comando vai imprimir isso
número <número de elementos>
pula para a próxima linha
imprime o i
depois v[0] 
depois 0
Ele vai produzir algo assim se alguém digitar 3 ...

número 3
0 d[0]número 3
1 d[1]número 3
2 d[2]

Dentro do loop, nas linhas 10 um valor v é obtido do teclado e atribuido ao elemento i do vetor dim, portanto, ele vai ler 3 valores e colocar em dim[0], depois dim[1] e depois em dim[2]. Só que ele não vai mostrar coisa alguma.
Os valores do vetor dim serão os valores que o usuário digitar.

Se a ideia era criar um vetor de n elementos e carregá-los com o índice, o for deveria ser assim

08 for (int i = 0; i < dim.length; i++) {
09     dim[i] = i;
09    System.out.printf("O elemento dim[%d] contém o valor %d",dim[i],i);
10 };

Simples assim.

Para facilitar, fiz o programa aqui para você dar uma olhada
import java.util.Scanner;
class Main {
  public static void main(String args[]){
  Scanner teclado = new Scanner(System.in);
  System.out.println("Atribuidor de vector com seu proprio Indice ");
  System.out.println("Introduza o tamanho do Vector: ");
  int n = teclado.nextInt();
  int dim[] = new int[n];
  System.out.println("Listagem de numeros no Vetor");
  for (int i = 0; i < dim.length; i++) {
    dim[i] = i;
    System.out.printf("Ao elemento dim[%2d] foi atribuido o valor
%2d\n",i,dim[i]);
  };
}
}

Pode rodá-lo aqui
https://repl.it/@bokomoko/carregavetor




Perguntas interessantes