Ir ao conteúdo
  • Cadastre-se

C++ notas e aprovação


Adams Ribeiro

Posts recomendados

Estou fazendo um programa que pegue o nome e o RA e 03 notas de 05 alunos. Este programa calcula a media e informa se o aluno foi aprovado ou reprovado.

Saida:

Nome RA N1 N2 N3 Média Aprovado/Reprovado.

 

Consegui até uma parte mais agora travei, alguem pode ajudar?

 

#include <cstdlib> 
#include <iostream> 

int main() 

int i, j; 
char aluno[5][5]; 
float nota[3]; 
float soma, media[5]; 

for (i=0; i<5; i++) 

 printf("\nNome do aluno: "); 
 gets(aluno); 
 soma = 0; 
 for(j=0; j<3; j++) 
 { 
printf("\Informe a %d.a nota: ", j+1); 
scanf("%f", &nota[j]); 
soma = soma + nota[j]; 

media = soma/3; 
printf("\nAluno: %s - media: %f \n", aluno, media); 

if (aluno, media >=6) 
printf(" Aluno aprovado"); 
else 
printf(" Aluno reprovado "); 

}

system("PAUSE"); 
return 0; 
}

Link para o comentário
Compartilhar em outros sites

Amigo,

 

Veja se te ajuda as explicações

 

#include<stdio.h>
#include<stdlib.h>
#define QNT_NOTAS 3
#define QNT_ALUNOS 5 /*Convem no inicio do aprendizado tratar alguns numeros ja dados no enunciado como constante*/

int main(){

    int i, j;
    char aluno[20]; /*Aqui voce havia declarado uma matriz, mas para o preenchimento basta ser um vetor de tamanho consideravel*/
    float nota[QNT_NOTAS];
    float media; /*soma, media[5];*/

    for(i = 0; i < QNT_ALUNOS; i++){

        printf("Nome do aluno: ");
        gets(aluno); /*O gets() pode ser perigoso pois nao limita a quantidade de elementos de uma string*/
        media = 0;

        for(j = 0; j < QNT_NOTAS; j++){
          
            printf("Informe a %d.a nota: ", j + 1);
            scanf("%f%*c", &nota[j]); /*Aqui, quando voce digita o numero e da um ENTER, este ENTER e' considerado basicamente um caractere '\n', enquanto a proxima
            instruçao de entrada for uma leitura de um numero pelo scanf(), este ENTER sera "ignorado" e ficara em um buffer.
            Veja que depois que o for do j terminar sua instrucao a proxima leitura sera o gets(). Primeiramente sera verificado o buffer, que esta com o '\n'
            armazenado. Este '\n' sera associado ao gets() que entendera como um "ENTER de conclusao". Resultado, nao havera leitura para o aluno 2 e nem para os
            proximos.
            A melhor forma de resolver e' limpando este ENTER. Para isso, use o %*c. O asterisco em um codigo de formatacao, le o dado especifico e nao o armazena.
            */
            media += nota[j] / QNT_NOTAS; /*O recebimento da media pode ser feito aqui*/
        }

        /*media = soma / QNT_NOTAS;*/
        printf("Aluno: %s - media: %.2f => ", aluno, media);

        if (media >= (float)6) /*veja o porque do (float) no link abaixo*/
            printf(" Aluno aprovado\n\n");
        else
            printf(" Aluno reprovado\n\n");

    }

return 0;
}

Sobre o link http://forum.imasters.com.br/topic/554464-me-da-um-help-por-favor-urgente/#entry2212351

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