Ir ao conteúdo
  • Cadastre-se

Não divide a media


cal.ba12

Posts recomendados

Galera, me da uma ajuda nesse programa. não esta dividindo "media[x]=soma[x]/tam" esta mostrando o total da soma. 

me da um help.

 

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>

using namespace std;

struct registro{
    string nome,situacao;
    int nota1,nota2,nota3,nota4,faltas,cont=0;
    };
    
main(){
    
    int tam;
    
    cout << "Quantidade Alunos: ";
    cin >> tam;

    int soma[tam],media[tam];
    
    registro aluno[tam];
    
    for (int x=0;x<tam;x++){
        
        cout << "\nNome Aluno: ";
        cin >> aluno[x].nome;
            
        cout << "Nota 1: ";
        cin >> aluno[x].nota1;
        
        cout << "Nota 2:";
        cin >> aluno[x].nota2;
        
        cout << "Nota 3: ";
        cin >> aluno[x].nota3;
        
        cout << "Nota 4: ";
        cin >> aluno[x].nota4;
        
        soma[x] = aluno[x].nota1 + aluno[x].nota2 + aluno[x].nota3 + aluno[x].nota4;
        
    }
    
        
        cout << "\n\n***RESULTADO***\n";
        
            for (int x=0;x<tam;x++){
            media[x]=soma[x]/tam;
            if (media[x]>=7){
                cout << "Aluno: " << aluno[x].nome;
                cout<< "\nMedia: " << media[x];
                cout << " -> Aprovado";
            }else{
                cout << "Aluno: " << aluno[x].nome;
                cout<< "\nMedia: " << media[x];
                cout << " -> Reprovado";
            }
            }
}    

Link para o comentário
Compartilhar em outros sites

#include<iostream>
using namespace std;

struct registro{
    registro()
    : nome(""), situacao(""), nota1(0), nota2(0), nota3(0), nota4(0), faltas(0), cont(0) 
    {}
    
    string nome, situacao;
    float nota1, nota2, nota3, nota4, faltas, cont;
};

int main() {
    int tam;
    
    cout << "Quantidade Alunos: ";
    cin >> tam;

    registro *aluno = new registro[tam];
    
    for ( int x = 0; x < tam; x++ ) {
    
        cout << "\nNome Aluno: ";
        cin >> aluno[x].nome;
        
        cout << "Nota 1: ";
        cin >> aluno[x].nota1;
        
        cout << "Nota 2: ";
        cin >> aluno[x].nota2;
        
        cout << "Nota 3: ";
        cin >> aluno[x].nota3;
        
        cout << "Nota 4: ";
        cin >> aluno[x].nota4;
        
    }
    
    
    cout << "\n\n***RESULTADO***\n";
    
    for ( int x = 0; x < tam; x++ ) {
        float media = 0;
        media = aluno[x].nota1 + aluno[x].nota2 + aluno[x].nota3 + aluno[x].nota4;
        if ( (media = media/(float) 4 ) >= 7 ) {
            cout << "Aluno: " << aluno[x].nome << endl;
            cout << "Media: " << media;
            cout << " -> Aprovado\n" << endl;
        } else {
            cout << "Aluno: " << aluno[x].nome << endl;
            cout << "Media: " << media;
            cout << " -> Reprovado\n" << endl;
        }
    }
    delete[] aluno;
    
    return 0;
}

vou comentar os pontos em que acho que você está fazendo mal.
- Acho que você  declara muitas variáveis sem necessidade. Uma vez que você tem as 4 notas qual a necessidade de guarda-las em vetores? você sempre vai poder ter a media quando quiser efetuando os cálculos sobre as 4 variáveis membro notas.

 

- Para evitar avisos molestos use listas de inicialização para as variáveis membro.

 

- Declarar listas em tempo de execução você precisa usar new[] e delet[]. Esse é o c++ padrão, o resto é gambiarra.

 

- A media deveria ser dividido entre 4 que é o numero de avaliações que o aluno tem, e não entre tam.
 

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