Em seguida, calcule e mostre:
Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmo e Estrutura de Dados.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char nome[15][30];
int i, j;
for(i=0;i<15;i++){
printf("Digite o nome dos 15 alunos \n");
fgets(nome[i], 30, stdin);
nome[i][strlen(nome[i])-1] = '\0';
}
float notas[15][5];
for(i=0;i<15;i++)
for(j=0;j<5;j++){
printf("Digite o numero do aluno as 5 notas de cada aluno\n");
scanf("%f",notas[i][j]);
}
for(i=0;i<15;i++)
for(j=0;j<5;j++){
printf("%s \n",nome[i]);
float media = (notas[i][0] + notas[i][1] + notas[i][2] + notas[i][3] + notas[i][4]) / 5;
printf("A media foi: \n %f \n",media);
if(media >= 7){
printf("\n Aprovado \n");
}
if(media >=5){
printf("\n Exame \n");
}
else {
printf("\n Reprovado \n");
}
}
float classe = 0;
for(i=0;i<15;i++)
for(j=0;j<5;j++){
classe = classe + notas[i][j];
}
float media_classe = classe / 75;
printf("A media da classe foi: \n %f \n",media_classe);
system("PAUSE");
return 0;
}
Portanto, o programa em questão faz uso de 2 matrizes que receberão os nomes dos alunos e as notas de cada um em seus respectivos testes, mostrando a média e ainda verificando se o aluno foi aprovado, se precisará de enxame ou se está reprovado.
/*
* File: main.cpp
* Author: joao
*
* Algoritmo que receba:
* As notas de 15 alunos em cinco provas diferentes e armazene-as em uma
* matriz 15 X 5.
* Os nomes dos 15 alunos e armazene-os em um vetor de 15 posições.
* Calcule e mostre:
* Para cada aluno, o nome,
* a média aritmética das cinco provas
* a situação: Aprovado (média >= 7),
* Reprovado (média < 5)
* Exame(média entre 5 e 7);
* A média da classe.
* Created on 03 de Agosto de 2017, 16:26
*/
#include <cstdlib>
#include <string.h>
#include<stdio.h>
#define MAX 15
using namespace std;
float calculaMedia(float vet[]) {
float soma = 0;
for (int i = 0; i < 5; i++) {
soma += vet[i];
}
return (soma / 5);
}
int main(int argc, char** argv) {
float notasTurma[MAX][5], mediaAluno = 0, mediaClasse = 0, maior = 0, menor = 999;
char alunos[MAX][20], situacao[20], flag = 0;
int cont = 0, posMaior, posMenor;
//-----
printf("Entre com os dados:\n");
//Captura os valores de entrada do usuário até que um
while (!flag && cont < MAX) {
printf("\nNome:");
scanf("%s", &alunos[cont]);
if (alunos[cont][0] == ' ') {
flag = 1;
}
for (int i = 0; i < 5; i++) {
printf("\nNota prova[%d]:", i);
scanf("%f", ¬asTurma[cont][i]);
}
if (!flag)
cont++;
}
printf("Nome \t Media Alunos \t Situacao\n");
for (int i = 0; i < cont; i++) {
mediaAluno = calculaMedia(notasTurma[i]);
if (mediaAluno >= 7) {
strcpy(situacao, "APROVADO");
} else if (mediaAluno < 7 && mediaAluno >= 5) {
strcpy(situacao, "EXAME");
} else {
strcpy(situacao, "REPROVADO");
}
printf("[%s] \t [%.2f] \t [%s]\n", alunos[i], mediaAluno, situacao);
mediaClasse += mediaAluno;
if (mediaAluno > maior) {
maior = mediaAluno;
posMaior = i;
}
if (mediaAluno < menor) {
menor = mediaAluno;
posMenor = i;
}
}
//Relatorio
printf("Media da Classe :[%.2f]\n", mediaClasse);
printf("Maior Média: [%.2f] Aluno(a):[%s] \n", maior, alunos[posMaior]);
printf("Menor Média [%.2f] Aluno(a):[%s] \n", menor, alunos[posMenor]);
}
Espero que ajude, criei uma função para auxiliar na resolução do exercicio, ela calcula a madia recebendo um vetor de 5 posições, ai é só passar a posição da linha da matriz de notas que ela retorna a média do aluno. Tinha acabado de resolver um exercicio que pedia no menor e o maior valor ai já inclui esse detalha no exercício também, é bem comum em prova.
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar