Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement