Buscar

Lógica de programação vetor

3 - Dado 4 vetores , um com os nomes, outro com as matriculas e os outros dois com as notas de duas disciplinas dos alunos de uma sala, pede-se:

Obs.: ESSA SALA POSSUI 10 ALUNOS.

 Elabore um programa que exiba a média de um aluno, que será pesquisado. Para isso solicite a matricula do aluno.

 

Código que fiz http://pastebin.com/4ybWpAnA

 

sáida do código :

Digite seu nome :
fabricio
Digite sua matricula para cadastrar :
12345
Digite a primeira nota :
5
Digite a segunda nota :
6
Digite seu nome :
medeiros
Digite sua matricula para cadastrar :
54321
Digite a primeira nota :
4
Digite a segunda nota :
3
Tirar a media(Digite sua matricula) :
1
MATRICULA NÃO EXISTE
Tirar a media(Digite sua matricula) :
12345
MATRICULA NÃO EXISTE

 

Digitei primeiro uma matricula que não está armazenada no vetor logo depois digitei uma matricula armazenada no vetor e aparece não existe para os dois casos

💡 4 Respostas

User badge image

Guilherme Botelho

Isso acontece porque vc ta comparando sempre o check[0] com a matricula[0] e o check[1] com a matricula[1]. Para arrumar, vc precisa acrescentar um outro for no codigo, assim: 

for (i = 0; i < 2; i++) {
     System.out.println("Tirar a media(Digite sua matricula) : ");
     check[i] = ler.nextInt();
     for (j = 0; j < 2; j++) {
          if (check[i] == matricula[j]) { 
              media = (nota1[j] + nota2[j]) / 2;
              System.out.println(nome[j] + ", sua média : " + media);
}

2
Dislike0
User badge image

Andre Smaira

Nesse exercício vamos usar busca linear para a busca.


Para o programa pedido, para cada busca realizada deve-se iterar sobre todo o vetor para encontrar em qual posição se encontra o número procurado. No caso do código fornecido, falta essa iteração.


O código corrigido é o seguinte:

import java.util.Scanner;

public class vetor {

public static void main(String[] args) {

// TODO Auto-generated method stub

String[] nome = new String[2];

double[] nota1 = new double[2];

double[] nota2 = new double[2];

int[] matricula = new int[2];

int i, j;

int[] check = new int[2];

double media;

int N=2;//Numero de elementos

Scanner ler = new Scanner(System.in);

for (i = 0; i < N; i++) {

System.out.println("Digite seu nome : ");

nome[i] = ler.next();

System.out.println("Digite sua matricula para cadastrar : ");

matricula[i] = ler.nextInt();

System.out.println("Digite a primeira nota : ");

nota1[i] = ler.nextDouble();

System.out.println("Digite a segunda nota : ");

nota2[i] = ler.nextDouble();

}

for (i = 0; i < 2; i++) {

System.out.println("Tirar a media(Digite sua matricula) : ");

check[i] = ler.nextInt();

for(j=0; j<N; j++){// Para cada matricula

if (check[i] == matricula[j]) {//Verifica se o procurado é o atual

media = (nota1[j] + nota2[j]) / 2;

System.out.println(nome[j] + ", sua média : " + media);

break;

}

}

if(j==N) {//Se passou por todo o vetor

System.out.println("MATRICULA NÃO EXISTE ");

}

}

}}

0
Dislike0
User badge image

Andre Smaira

Nesse exercício vamos usar busca linear para a busca.


Para o programa pedido, para cada busca realizada deve-se iterar sobre todo o vetor para encontrar em qual posição se encontra o número procurado. No caso do código fornecido, falta essa iteração.


O código corrigido é o seguinte:

import java.util.Scanner;

public class vetor {

public static void main(String[] args) {

// TODO Auto-generated method stub

String[] nome = new String[2];

double[] nota1 = new double[2];

double[] nota2 = new double[2];

int[] matricula = new int[2];

int i, j;

int[] check = new int[2];

double media;

int N=2;//Numero de elementos

Scanner ler = new Scanner(System.in);

for (i = 0; i < N; i++) {

System.out.println("Digite seu nome : ");

nome[i] = ler.next();

System.out.println("Digite sua matricula para cadastrar : ");

matricula[i] = ler.nextInt();

System.out.println("Digite a primeira nota : ");

nota1[i] = ler.nextDouble();

System.out.println("Digite a segunda nota : ");

nota2[i] = ler.nextDouble();

}

for (i = 0; i < 2; i++) {

System.out.println("Tirar a media(Digite sua matricula) : ");

check[i] = ler.nextInt();

for(j=0; j<N; j++){// Para cada matricula

if (check[i] == matricula[j]) {//Verifica se o procurado é o atual

media = (nota1[j] + nota2[j]) / 2;

System.out.println(nome[j] + ", sua média : " + media);

break;

}

}

if(j==N) {//Se passou por todo o vetor

System.out.println("MATRICULA NÃO EXISTE ");

}

}

}}

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais