Ir ao conteúdo
  • Cadastre-se

Ajuda Lista Vetor


Posts recomendados

Pessoal, Boa tarde.

 

Tenho que resolver a questão abaixo, fiz o código todo. Mas o Dev não me retorna a lista.

 

Escreva um programa que leia os seguintes dados para cada um dos N alunos de uma turma (N também deve ser lido): nome (string), matrícula (long) e 3 notas (float). Os dados lidos devem ser armazenados. Após leitura dos dados de todos os alunos, imprima 2 listas, uma para alunos APROVADOS e outra para REPROVADOS, com as seguintes informações para cada aluno: o nome, a matrícula, as 3 notas, a média e a situação ("RP", se média for menor que 6; ou "AP", se média maior ou igual a 6).

 

Exemplo:

 

Entrada:

            N=3

            nome="Ana"     matricula=100000   A1= 5.0   A2=4.0  A3=3,0

            nome="Maria"     matricula=111111   A1= 9.0   A2=10.0  A3=0.0

            nome="Manoel"   matricula=222222   A1= 5.0   A2=7.0  A3=0.0

            nome="Joaquim"  matricula=333333   A1= 3.0   A2=5.0  A3=2.0

 

Saída:

      Alunos APROVADOS:

            Maria      matricula=111111  A1=9.0    A2=10.0  A3=0.0  Media=9.5   Situação=AP

            Manoel   matricula=222222   A1= 5.0   A2=7.0   A3=0.0  Media=6.0   Situação=AP

 

      Alunos REPROVADOS:

            Ana     matricula=100000  A1= 5.0   A2=540    A3=3.0  Media=3,5.0   Situação=RP

            Joaquim  matricula=333333  A1= 3.0   A2=5.0    A3=2.0  Media=4.0   Situação=RP

           

ATENÇÂO! OBSERVEM OS SEGUINTES DETALHES DA IMPLEMENTAÇÃO:

- Utilize struct para o tipo Aluno

- Para cálculo da média, escreva uma função que receba como parâmetros as 3 notas,  calcule e retorne a média, utilizando as 2 maiores notas

 

_____________________________________________________________________________________________________________________

 

Segue o código : 

 

using namespace std;
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
 
char CalculaMedia( float nota1, float nota2, float nota3){
float aux;
char situacao;
if (nota1>nota2){
 
aux = nota1;
nota1 = nota2;
nota2 = aux;
}
if (nota2>nota3){
 
aux = nota2;
nota2 = nota3;
nota3 = aux;
}
if ((nota2 + nota3)/2 < 6){
 
situacao = 'R';
}
if ((nota2 + nota3)/2 >= 6){
 
situacao = 'A';
}
return situacao;
}
int main()
{
 
int Nu;
 
cout << endl << "Digite o Numero de Alunos: ";
cin >> Nu;
 
struct Aluno
{
char nome[N][80];
long matricula[N];
float nota1[N];
float nota2[N];
float nota3[N];
float media[N];
};
 
 
Aluno a[N];
int i;
char situacao;
 
for (i = 0; i < Nu; i++)
{
cout << endl << "Digite o Nome do Aluno: ";
cin >> a[N].nome[N];
cout << endl << "Digite a Matricula: ";
cin >> a[N].matricula[N];
cout << endl << "Nota da A1: ";
cin >> a[N].nota1[N];
cout << endl << "Nota da A2: ";
cin >> a[N].nota2[N];
cout << endl << "Nota da A3: ";
cin >> a[N].nota3[N];
 
 
 
}
for (i = 0; i < Nu; i++)
{
cout << endl << "Nome do Aluno: ";
cout << endl << a[N].nome[N];
cout << endl << "Matricula: ";
cout << endl << a[N].matricula[N];
cout << endl << "Nota da A1: ";
cout << endl << a[N].nota1[N];
cout << endl << "Nota da A2: ";
cout << endl << a[N].nota2[N];
cout << endl << "Nota da A3: ";
cout << endl << a[N].nota3[N];
 
 
cout << endl << "Situacao: "<< CalculaMedia(a[N].nota1[N],a[N].nota2[N],a[N].nota3[N]);
 
}
 
 

 

}

 

 

Link para o comentário
Compartilhar em outros sites

Sabe que os métodos de entrada e saída são em C++, não é?

E você nao navegou pelo array usando a variável de controle de loop

e usou mal o ponteiro do array da estrutura

 

Taí o código funcionando. Repare as modificações

using namespace std;#include <iostream>#define N 100float CalculaMedia( float nota1, float nota2, float nota3){    return (nota1 + nota2 + nota3) / 3;}int main(){    int Nu;    cout << "Digite o Numero de Alunos: ";    cin >> Nu;    cout << "*********************************************" << endl;    struct Aluno    {        char nome[N];        char matricula[6];        float nota1;        float nota2;        float nota3;        float media;    } a[Nu];    int i;    for (i = 0; i < Nu; i++)    {        cout << "Digite o Nome do Aluno: ";        cin >> a[i].nome;        cout << "Digite a Matricula: ";        cin >> a[i].matricula;        cout << "Nota da A1: ";        cin >> a[i].nota1;        cout << "Nota da A2: ";        cin >> a[i].nota2;        cout << "Nota da A3: ";        cin >> a[i].nota3;        cout << "\n\n";    }    cout << "************************************************" << endl;    for (i = 0; i < Nu; i++)    {        cout << "Nome do Aluno: ";        cout << a[i].nome << endl ;        cout << "Matricula: ";        cout << a[i].matricula << endl ;        cout << "Nota da A1: ";        cout << a[i].nota1 << endl ;        cout << "Nota da A2: ";        cout << a[i].nota2 << endl ;        cout << "Nota da A3: ";        cout << a[i].nota3 << endl ;        a[i].media = CalculaMedia(a[i].nota1,a[i].nota2,a[i].nota3);        cout << "Situacao: " << ((a[i].media >= 5.0) ? "A" : "R") << endl << endl;    }    return 0;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!