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
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
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