Created
January 31, 2015 05:33
-
-
Save isvaldo/9d2783dafb2ee4606899 to your computer and use it in GitHub Desktop.
Ajuda para Ariana 31/01/2015
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <limits.h> | |
#define N_ALUNOS 6 | |
/// ESSE DEFINE é mesmo que constante so que com conceito diferente (procura) | |
/*********************************************** | |
TODAS AS MODIFICAÇÕES ACOMPANHAM COMENTÁRIOS ! | |
************************************************/ | |
/*4. Faуa um programa que processe as informaушes abaixo, | |
sendo que cada linha representa um registro de aluno com o nome e suas notas. | |
O programa deverр mostrar a mжdia de cada aluno, com seu nome, e a mжdia da turma. | |
Alжm disso, o programa deverр mostrar o melhor aluno da turma. | |
Luiz 5 7 4 | |
Paulo 5 6 7 | |
Maria 3 5 2 | |
Luiza 4 5 6 | |
Luiza 4 5 6 | |
Fabiana 2 6 4 | |
*/ | |
const int numNotas = 3; | |
typedef struct { | |
char nome[30]; | |
int notas[3]; | |
float media; | |
} tp_regAlunos; | |
//void mostrar_regAlunos(tp_regAlunos *a[]){ | |
// Array já um ponteiro ! | |
/*************************************************** | |
Struct Aluno *aluno; | |
aluno->nota | |
Struct Aluno[] | |
Aluno[0].nota | |
****************************************************/ | |
void mostrar_regAlunos(tp_regAlunos a[]){ | |
// simplificar declaração | |
int i,j,n = 0; | |
float mg; | |
float media_geral = 0; | |
for(i = 0; i<N_ALUNOS; i++){ | |
printf("Aluno: %s\n", a[i].nome); | |
n=0; // vamos limpar os valores anteriores ne ! | |
for(j = 0; j < numNotas; j++){ | |
// VOCE ta colocando um vetor como inteiro "%d"... | |
// aqui poderia até dar segment default | |
//printf("Notas: %d, %d, %d\n", a[j].notas); | |
//Entendi que você quer usar for, mas pensa em uma forma melhor de fazer isso | |
//coloca "notas:" do lado de fora, e repete o loop para fazer X,X,X | |
printf("Notas: %d, %d, %d\n", a[i].notas[0],a[i].notas[1],a[i].notas[2]); | |
//n =+ a[j].notas[j]; | |
// você quis dizer += | |
n += a[i].notas[j]; | |
} | |
//a[j].media = n / numNotas; | |
// você quis dizer I | |
a[i].media = n / numNotas; | |
printf("Media: %.2f\n", a[i].media); | |
//mg =+ a[i].media; | |
// você quis dizer += | |
mg += a[i].media; | |
} | |
media_geral = mg / N_ALUNOS; | |
printf("Media geral da turma = %.2f\n", media_geral); | |
} | |
//void mostrar_Melhor(tp_regAlunos *a){ | |
// já é um ponteiro | |
void mostrar_Melhor(tp_regAlunos a[]){ | |
int i; | |
float melhor; | |
melhor = INT_MIN; | |
char nomeMelhor[30]; | |
for(i = 0; i < N_ALUNOS; i++){ | |
//if (a[i]->media > melhor){ | |
if (a[i].media > melhor){ | |
melhor = a[i].media; | |
//nomeMelhor = a[i]->nome; | |
strcpy(nomeMelhor,a[i].nome); | |
} | |
} | |
printf("O melhor aluno foi %s\n", nomeMelhor); | |
} | |
main(){ | |
tp_regAlunos aluno[N_ALUNOS] = {{"Luiz",{5,7,4}}, | |
{"Paulo",{5,6,7}}, | |
{"Maria",{8,5,2}}, | |
{"Luiza",{4,5,6}}, | |
{"Felipe",{8,9,6}}, | |
{"Fabiana",{7,6,4}}}; | |
// mais ou menos funcionando | |
mostrar_regAlunos(&aluno); | |
mostrar_Melhor(&aluno); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment