Buenas.
Vereis: me ha surgido un problema k no se como resolver mientras estaba haciendo un ejercicio de las practicas de la uni. Es un problema al que le metes el nombre del alumno y su nota y te sigue pidiendo hasta k el primer caracter es nulo(el enunciado pone k es enter). Resulta k vale, el primer nombre me lo pilla y la nota tb , pero cuando le meto la segunda nota no se xk se para, cuando debería seguir preguntadome mas alumnos hasta k yo le diese al enter(mi profesor me explico k el enter se considera un caracter nulo o algo asi xD, de ahi lo del while).
PD:Me refiero todo el rato a C xD, concretamente estamos con los punteros, pero me ha surgido la movida esta k no se como arregrarla, he probado a meter if's dentro del while pero na.. tiene k haber alguna forma xD.
Akí os pongo un link con el problema( es el 2) y el codigo fuente de lo k he intentado hasta ahora:
http://www.bigupload.com/d=BE08CA6C
otro por si os va lento:
http://www.megaupload.com/?d=RFE6YLSE
Para los vagos copio lo k puse en el dev-c++:
#include <stdio.h>
#include <math.h>
int main() {
char alumno[150];
float nota,porcent,maxnot,promenot,sumanot; int numal,numapr;
numal=0; numapr=0; maxnot=-1; sumanot=0;
FILE*p;
p=fopen("examen.txt","w");
printf("\nNombre y apellidos del alumno:"); gets(alumno);
printf("Nota [0-10] del alumno:"); scanf("%f",¬a);
while ( alumno[0] ) {
numal++; sumanot=sumanot+nota;
if (nota>=5) numapr++;
if (nota>maxnot) maxnot=nota;
fprintf(p,"%s\t\t%f\n",alumno,nota);
printf("\nNombre y apellidos del alumno:"); gets(alumno);
printf("Nota [0-10] del alumno:"); scanf("%f",¬a);
}
fclose(p);
promenot=sumanot/numal;
porcent=(numapr/numal)*100;
printf("\nSe han introducido %d alumnos",numal);
printf("\nHan aprobado %d",numapr);
printf("\nEl porcentaje de aprobados es %f",porcent);
printf("\nLa maxima nota obtenida es %f",maxnot);
printf("\nEl promedio total de las notas es %f",promenot);
getch(); return 0; }
salu2, espero vuestras respuestas.
gracias por adelantado.