miren en este programa da por pantalla una pila de datos de estudientes despues de ser introducidos por teclado,quisiera saber que le podria modificar, para que al final de la ejecucion me siga preguntando si quiero seguir ingresando mas datos
aconsejadme por favor.
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
struct alumnos
{
char nombre[50];
char apellidos[30];
int faltas;
};
struct nodo
{
struct alumnos dato;
struct nodo *proximo;
};
/* Declaracion de funciones */
struct nodo *nuevonodo()
{
struct nodo *p;
p=(struct nodo *)malloc(sizeof(struct nodo));
if(p==NULL)
{
printf("Memoria RAM Llena");
getch();
exit(0);
}
return p;
}
struct nodo *creapila(struct nodo *pri, struct alumnos x)
{
struct nodo *p;
p=nuevonodo();
(*p).dato=x;
(*p).proximo=pri;
return p;
}
void muestra(struct nodo *pri, FILE *fp)
{
char opcion;
struct nodo *aux;
while(pri!=NULL)
{
printf("Nombre: %s n",(*pri).dato.nombre);
printf("Apellidos: %s n",(*pri).dato.apellidos);
printf("faltas: %d n",(*pri).dato.faltas);
fwrite(&pri->dato,sizeof(struct alumnos),1,fp);
aux=pri;
pri=(*pri).proximo;
free(aux);
opcion=toupper(opcion);
}
}
/* Fin de Declaracion */
int main()
{
struct alumnos x;
struct nodo *pri=NULL;
FILE *fp;
char opcion; int auxiliar=0;
if((fp=fopen("C:\Datos.txt","wb"))==NULL)
{
getch();
}
fseek(fp,0,2);
do
{
fflush(stdin);
printf("Ingrese Nombre del alumno: ");
gets(x.nombre);
fflush(stdin);
printf("Ingrese apellidos del alumno: ");
gets(x.apellidos);
fflush(stdin);
printf("Ingrese las faltas del alumno: ");
scanf("%d",& auxiliar); x.faltas=auxiliar;
pri=creapila(pri,x);
fflush(stdin);
printf("Desea Ingresar otro Registro? (S/N) ");
scanf("%c",&opcion);
opcion=toupper(opcion);
} while(opcion=='S');
muestra(pri,fp);
getch();
fclose(fp);
return 0;
}