typedef struct{ char nome[50]; float p1,p2,m; int ano; }aluno; aluno cadastro(aluno a){ scanf("%s", a.nome); scanf("%f", &a.p1); scanf("%f", &a.p2); a.m = (a.p1+a.p2)/2.; scanf("%d", &a.ano); return a; } void maior_nota_ano(aluno a[], int tam, int ano){ float maior = 0; int i_maior; for(int i = 0; i < tam; i++){ if(a[i].ano == ano){ if(a[i].m > maior){ maior = a[i].m; i_maior = i; } } } printf("Maior media do %d ano é %.1f do aluno %s\n",ano, maior, a[i_maior].nome); } void nota_geral(aluno a[], int tam){ float maior = 0; int i_maior; for(int i = 0; i < tam; i++){ if(a[i].m > maior){ maior = a[i].m; i_maior = i; } } printf("Maior nota geral é: %.1f\n", a[i_maior].m); } void maior_nota_p(aluno a[], int tam, int escolha, int ano){ int maior_nota = 0; int maior_i; for(int i = 0; i < tam; i++){ if(escolha == 1){ switch(ano){ case 1: if(a[i].p1 > maior_nota) { maior_nota = a[i].p1; maior_i = i; } break; case 2: if(a[i].p1 > maior_nota) { maior_nota = a[i].p1; maior_i = i; } break; case 3: if(a[i].p1 > maior_nota) { maior_nota = a[i].p1; maior_i = i; } break; } }else if(escolha == 2){ switch(ano){ case 1: if(a[i].p2 > maior_nota) { maior_nota = a[i].p2; maior_i = i; } break; case 2: if(a[i].p2 > maior_nota) { maior_nota = a[i].p2; maior_i = i; } break; case 3: if(a[i].p2 > maior_nota) { maior_nota = a[i].p2; maior_i = i; } break; } }else{ printf("Prova escolhida inválida\n"); } } if(escolha == 1) printf("Maior nota do %d ano é %.1f de %s\n", ano, a[maior_i].p1, a[maior_i].nome); else if (escolha == 2) printf("Maior nota do %d ano é %.1f de %s\n", ano, a[maior_i].p2, a[maior_i].nome); } void media_menor_que_5(aluno a[], int tam){ aluno aux[tam]; int quant = 0; for(int i = 0; i < tam; i++){ if(a[i].m < 5){ aux[quant] = a[i]; quant++; } } printf("Lista de alunos com média abaixo de 5\n"); for(int i = 0; i < quant; i++){ printf("%s\n",aux[i].nome); } printf("Total de alunos com média abaixo de 5: %d\n", quant); }