#include #include #include #define MAXALUNOS 40 int NUsp [MAXALUNOS]; char Nome [MAXALUNOS][30]; double Media[MAXALUNOS]; int main(int argc, char *argv[]) { char procurado[30]; char resp[4]; int achou; int i, maior, indmaior; int totalunos=0; printf(">> Controle de Desempenho de Alunos <<\n"); printf("\n"); /* Cadastra os dados dos alunos nos Vetores */ printf("** Cadastrar Alunos **\n"); printf("\n"); for (i=0; i < MAXALUNOS; i++) { printf("Digite o nome do aluno %d: ",i+1); scanf ("%s",Nome[i]); // fflush(stdin); gets(Nome[i]); /* Lembre-se: scanf de string não aceita espaços em branco nos nomes */ /* Alternativa, use os comandos: fflush(stdin); gets(Nome[i)); */ printf("Digite o nro. USP do aluno %d: ",i+1); scanf ("%d",&NUsp[i]); while (1) { printf("Digite a media geral do aluno %d: ",i+1); scanf ("%lf",&Media[i]); if ((Media[i] >= 0.0) && (Media[i] <= 10.0)) break; else printf("# Media invalida! Digite novamente...\n"); } totalunos++; printf("Deseja entrar com mais um nome (S/N)?"); scanf ("%s",resp); if ((resp[0]!='s') && (resp[0]!='S')) break; else printf("\n"); } /* Identifica o aluno que possui a maior média */ printf("\n"); printf("** Melhor Aluno **\n"); printf("\n"); maior=Media[0]; indmaior=0; for (i=1; i < totalunos; i++) { if (Media[i] > maior) { maior=Media[i]; indmaior=i; } } printf("Dados do Alunos:\n"); printf("Nro. USP: %d - Nome: %s - Media Geral: %.2lf\n", NUsp[indmaior],Nome[indmaior],Media[indmaior]); /* Procura pelo nome de um dos alunos */ printf("\n"); printf("** Procurar Aluno **\n"); printf("\n"); printf("Digite o nome do aluno procurado: "); scanf ("%s",procurado); achou=0; for (i=0; i < totalunos; i++) { if (strstr(Nome[i],procurado)) { achou=1; printf(" Nro. USP: %d\n Nome: %s\n Media Geral: %.2lf\n", NUsp[i],Nome[i],Media[i]); } } if (!achou) printf("Nao foi encontrado um aluno com este nome!\n"); system("PAUSE"); return 0; }