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]);
}
}