Ir ao conteúdo
  • Cadastre-se
cal.ba12

Não divide a media

Recommended Posts

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";
            }
            }
}    

Compartilhar este post


Link para o post
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.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×