Skip to content

Instantly share code, notes, and snippets.

@isvaldo
Created January 31, 2015 05:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isvaldo/9d2783dafb2ee4606899 to your computer and use it in GitHub Desktop.
Save isvaldo/9d2783dafb2ee4606899 to your computer and use it in GitHub Desktop.
Ajuda para Ariana 31/01/2015
#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