Ir ao conteúdo
  • Cadastre-se

C++ Problema com verificação de vetor C++


Escanor

Posts recomendados

O Departamento de Computação deseja saber se existem alunos cursando, simultaneamente, as disciplinas D1 e D2. Existe disponível uma listagem com os números de matrículas dos alunos das duas disciplinas. Após ler essas listagens verifique quem são os alunos.

 

O Problema é que não to conseguindo fazer a verificação dos alunos., alguem poderia me ajudar?

 

#include <iostream>
using namespace std;

int main()
{
    int D1[]={2,3,4,5, '\0'};
    int D2[]={6,7,8,9, '\0'};
    int i;
    int codaluno;

    cout << "Digite o codigo do aluno: " << endl;
    cin >> codaluno;

for(i=0; i < 5; i++){
        if(codaluno == D1[5] && codaluno == D2[5]){
            cout << "O Aluno esta Matriculado nas materias D1 e D2" << endl;
        }
         if(codaluno == D1[5]){
            cout << "O Aluno esta Matriculado na materia D1" << endl;
        }
          if(codaluno == D2[5]){
            cout << "O Aluno esta Matriculado na materia D2" << endl;
        }
}
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Bom, o que precisa ser feito é o seguinte: você precisa de duas variáveis, uma para cada disciplina. O valor da respectiva variável será trocado para 1 caso o código do aluno seja encontrado no vetor da respectiva disciplina. Por exemplo:

int MatD1 = 0, MatD2 = 0;
for(i = 0; i < 5 && (MatD1 == 0 || MatD2 == 0); i++)
{
	if(codaluno == D1[i])
		MatD1 = 1;
	if(codaluno == D2[i])
		MatD2 = 1;
}

if(MatD1 && MatD2)
    cout << "O Aluno esta Matriculado nas materias D1 e D2" << endl;
else if(MatD1)
    cout << "O Aluno esta Matriculado na materia D1" << endl;
else
    cout << "O Aluno esta Matriculado na materia D2" << endl;

No final, basta usar condições para cada uma dos possíveis valores das variáveis.

 

Seu código está errado porque o índice dos vetores nas condições está 5, ou seja, está estático, que sempre terá o mesmo resultado em todas as iterações do loop.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

17 horas atrás, iHollyZinhO disse:

Bom, o que precisa ser feito é o seguinte: você precisa de duas variáveis, uma para cada disciplina. O valor da respectiva variável será trocado para 1 caso o código do aluno seja encontrado no vetor da respectiva disciplina. Por exemplo:


int MatD1 = 0, MatD2 = 0;
for(i = 0; i < 5 && (MatD1 == 0 || MatD2 == 0); i++)
{
	if(codaluno == D1[i])
		MatD1 = 1;
	if(codaluno == D2[i])
		MatD2 = 1;
}

if(MatD1 && MatD2)
    cout << "O Aluno esta Matriculado nas materias D1 e D2" << endl;
else if(MatD1)
    cout << "O Aluno esta Matriculado na materia D1" << endl;
else
    cout << "O Aluno esta Matriculado na materia D2" << endl;

No final, basta usar condições para cada uma dos possíveis valores das variáveis.

 

Seu código está errado porque o índice dos vetores nas condições está 5, ou seja, está estático, que sempre terá o mesmo resultado em todas as iterações do loop.

Agora consegui entender, valeu :thumbsup:

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...