diegohsc@gmail.c
(usa Ubuntu)
Enviado em 27/06/2009 - 19:39h
Boa noite
Sou novo na área da programação,(Porém apaixonado por ela) e estou com dificuldades para resolver um problema de compilação de um programinha que estou desenvolvendo, o codigo segue logo abaixo:
#include <stdio.h>
#include <stdlib.h>
#define MAX_ALUNOS 1000
struct aluno
{
int codigo;
float media;
};
struct no {
int codigo;
float media;
struct no *lig;
};
struct lista {
struct no *com;
};
void inicialista (struct lista *L) {
L->com = NULL;
}
void inserelista (struct lista *L, struct aluno v)
{
struct no *aux, *ant, *p;
p = (struct no *) malloc (sizeof (struct no));
if (!p)
{
printf ("\nLISTA CHEIA");
system("pause");
}
else {
ant = NULL;
aux = L->com;
while (aux != NULL && (aux->media>v.media)) {
ant = aux;
aux = aux->lig;
}
aux = p;
aux->media = v.media;
aux->codigo = v.codigo;
if (!ant) {
aux->lig = L->com;
L->com = aux;
}
else {
aux->lig = ant->lig;
ant->lig = aux;
}
}
}
void mostralista (struct lista L)
{
struct no *aux;
float m=0;
aux = L.com;
m = aux->media;
printf("\nMaiores Medias \n");
while (aux && aux->media == m)
{
printf ("%d %5.2f\n", aux->codigo, aux->media);
aux = aux->lig;
}
printf("\n");
// alterei para zerar as médias
aux->codigo = 0;
aux->media =0;
system("pause");
}
int main()
{
int i, indice_melhor, n;
float media_melhor;
int turma=1;
struct lista L;
inicialista (&L);
//inserir o menu aqui //
printf(" I---------------------------------I\n");
printf(" I CALCULO DE MEDIAS I\n");
printf(" I---------------------------------I\n");
printf("\n");
printf ("Escreva o numero de alunos da turma:\n(Digite <=0 para sair do programa)\n");
struct aluno alunos[MAX_ALUNOS];
/* le numero de alunos da primeira turma */
scanf("%d", &n);
while (n > 1000)
{
n=0;
printf("Valor invalido, digite novamente o numero de alunos da turma\n");
scanf("%d",&n);
}
while (n > 0)
{
/* le dados dos alunos */
printf ("Escreva o codigo e nota media do aluno:\n");
for (i = 0; i < n; i++)
{
scanf("%d %f", &alunos[i].codigo, &alunos[i].media);
while ((alunos[i].codigo > 20000) || (alunos[i].media > 100))
{
alunos[i].codigo = 0;
alunos[i].media =0;
printf("Valor invalido, favor digite novamente.");
scanf("%d %f", &alunos[i].codigo, &alunos[i].media);
}
inserelista (&L, alunos[i]);
}
}
mostralista(L);
printf("\n-------------------------------------------------\n");
n = 0;
inicialista (&L);
/* le numero de alunos da proxima turma */
printf ("Escreva o numero de alunos da proxima turma:\n(Digite <=0 para sair do programa)\n");
/* le numero de alunos da primeira turma */
scanf("%d", &n);
}
return 0;
}
system ("pause");
}
O código da erro nas últimas 3 linhas na hora de compilar, algum problema com a função return e system()...
Se alguem se desponibilizar em me dar uma ajuda...Muito obrigado
postei o codigo aqui tb:
http://codepad.org/UwHTM7QV
para facilitar a visualização..
até mais