Traveii na parte da leitura das matriculas, preciso fazer com que o usuario não consiga digitar 2 matriculas iguais. Tenho outro duvida, para fazer n cadastros eu precisaria usar malloc ou teria outra solução?
Agradeço pela ajuda.
#include<stdio.h>
typedef struct Aluno
{
int matricula[5];
float nota1[5];
float nota2[5];
float somamedia[5];
}Aluno;
void lerAluno (Aluno *p);
void ordena (Aluno *v);
void imprimi (Aluno *b);
int main()
{
Aluno a;
lerAluno(&a);
ordena(&a);
imprimi(&a);
return 0;
}
void lerAluno (Aluno *p)
{
int i;
int j;
for(i=0;i<5;i++)
{
printf("Matricula: ");
scanf("%d",&(p->matricula[i]));
for (j=0; j<i; j++)
{
if(p->matricula[i] == p->matricula[j])
{
printf("\n ERRO - MATRICULA já CONSTA NO SISTEMA!\n\n");
printf("Nova Matricula: ");
scanf("%d",&(p->matricula[i]));
i--;
}
}
printf("Nota1: ");
scanf("%f",&(p->nota1[i]));
printf("Nota2: ");
scanf("%f",&(p->nota2[i]));
printf("\n");
p->somamedia[i] = p->nota1[i] + p->nota2[i];
}
}
void ordena( Aluno *v )
{
int i ,j,aux;
for(i=0; i < 5; i++)
{
for(j=i; j < 5; j++)
{
if (v->matricula[i] >= v->matricula[j])
{
aux = v->matricula[i];
v->matricula[i] = v->matricula[j];
v->matricula[j] = aux;
}
}
}
}
void imprimi(Aluno *b)
{
int i;
for(i=0;i<5;i++)
{
printf("\n-------------------------------------------------------------\n");
printf("Matricula: %d\n",b->matricula[i]); //imprimi a matricula.
printf("Nota1: %1.2f\n",b->nota1[i]); //imprimi a nota1.
printf("Nota2: %1.2f\n",b->nota2[i]); //imprimi a nota2.
printf("Media do Aluno: %1.2f\n",b->somamedia[i]/2);
if(b->somamedia[i]/2 < 6.0)
printf("Reprovado\n\n");
else
printf("Aprovado\n\n");
}
}
Pergunta
Lastman
Traveii na parte da leitura das matriculas, preciso fazer com que o usuario não consiga digitar 2 matriculas iguais. Tenho outro duvida, para fazer n cadastros eu precisaria usar malloc ou teria outra solução?
Agradeço pela ajuda.
Editado por quintelabRemovido Ajuda do título
Link para o comentário
Compartilhar em outros sites
14 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.