Boa noite galera, sou novo aqui no fórum, e vim até aqui porque estou com um problema no meu algoritmo, ele le o primeiro nome e quando entra no laço while o programa da erro e aparece a mensagem " o programa parou de funcionar...", gostaria que vocês pudessem dar uma olhada no meu algoritmo e me ajudassem a encontrar o erro, para melhor entendimento do código vou colocar o exercício desse algoritmo abaixo;
Fazer um algoritmo que receba o nome do aluno, a matrícula do aluno, a nota da primeira prova e a nota da segunda prova
até que o nome do aluno seja igual a “FIM”. Imprima a matrícula dos alunos em ordem decrescente
de acordo com as médias dos alunos.
Meu código:
#include <stdio.h>
#include <string.h>
int main()
{
char nome[20];
float nota1[20],nota2[20],media[20];
int matricula[20],i,maior_media=0,num_alunos=0,indice_maior=0,j=0,vet_decrescente[20];
i=0;
scanf("%s",&nome[i]);
num_alunos++;
while(strcmp(nome[i],"FIM")!=0) /* le nomes, notas e matriculas enquanto nome for diferente de "FIM" */
{
scanf("%d",&matricula[i]);
scanf("%f",¬a1[i]);
scanf("%f",¬a2[i]);
media[i]= (nota1[i]+nota2[i])/2;
i++;
scanf("%s",&nome[i]);
num_alunos++;
}
for(i=0,j=0; i<(num_alunos-1); i++,j++) /* encontra a maior media das notas, e guarda o indice da maior media */
{
for(i=0; i<(num_alunos-1); i++)
{
if(media[i]>maior_media)
{
maior_media = media[i];
indice_maior = i;
}
}
i=j;
vet_decrescente[i] = matricula[indice_maior]; /* guarda a matricula correspondente a maior media no vetor */
media[indice_maior] = 0; /* e depois a maior media recebe 0 para que o programa encontre a nova maior media */
}
for(i=0; i<(num_alunos-1); i++) /* mostra as matriculas referentes as medias dos alunos que estao em ordem descrescente */
printf("%d\n",vet_decrescente[i]);
return 0;
}
Pergunta
Maickon
Boa noite galera, sou novo aqui no fórum, e vim até aqui porque estou com um problema no meu algoritmo, ele le o primeiro nome e quando entra no laço while o programa da erro e aparece a mensagem " o programa parou de funcionar...", gostaria que vocês pudessem dar uma olhada no meu algoritmo e me ajudassem a encontrar o erro, para melhor entendimento do código vou colocar o exercício desse algoritmo abaixo;
Fazer um algoritmo que receba o nome do aluno, a matrícula do aluno, a nota da primeira prova e a nota da segunda prova
até que o nome do aluno seja igual a “FIM”. Imprima a matrícula dos alunos em ordem decrescente
de acordo com as médias dos alunos.
Meu código:
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.