Ciclo While en funcion C Hola que tal a quien se encuentre leyendo esto, soy algo novato en esto de la programacion y estoy realizando un programa tipo control escolar pero tengo un pequeño problema en uno de los bucles while exactamente en la funcion Numero 4, consulta_calificacion por alguna razon pregunta primero si quiera otra consulta, sin haber terminado la primera vuelta, este es el codigo, exactamente la funcion inicia en la linea de codigo numero 164.
Código C:
Ver originalint n=0,ultimo; struct alumno { char nombre[100][20]; char matricula[100][20]; char domicilio[100][20]; char telefono[100][20]; char fecha[100][20]; char especialidad[100][20]; char grupo[100][20]; int calif[100][20]; }; struct alumno uno; captura(){ _setcursortype ( _NORMALCURSOR ); char frank='o'; gotoxy (6,4);printf("Matricula : "); gotoxy (6,6);printf("Nombre : "); gotoxy (6,8);printf("Domicilio : "); gotoxy (6,10);printf("Telefono : "); gotoxy (6,12);printf("Fecha de ingreso : "); gotoxy (6,14);printf("Especialidad : "); gotoxy (6,16);printf("Grupo : "); do{ n=n+1; ultimo=n; gotoxy(25,4);clreol(); gotoxy(25,6);clreol(); gotoxy(25,8);clreol(); gotoxy(25,10);clreol(); gotoxy(25,12);clreol(); gotoxy(25,14);clreol(); gotoxy(25,16);clreol(); gotoxy (25,4);gets(uno. matricula[n ]); gotoxy (25,6);gets(uno. nombre[n ]); gotoxy (25,8);gets(uno. domicilio[n ]); gotoxy (25,10);gets(uno. telefono[n ]); gotoxy (25,12);gets(uno. fecha[n ]); gotoxy (25,14);gets(uno. especialidad[n ]); gotoxy (25,16);gets(uno. grupo[n ]); gotoxy (6,24);printf("[O] Registrar otro alumno,"); gotoxy (6,25);printf("[TECLA CUALQUIERA] Continuar."); frank=getche(); gotoxy(6,24);clreol(); gotoxy(6,25);clreol(); }while(frank=='o' || frank=='O'); } actualizacion(){ char matri[20]; char frank='r'; int bandera=1; int x; while(frank=='r' || frank=='R'){ gotoxy (4,3);printf("Matricula: "); for(x=1; x<=ultimo; x++){ bandera =strcmp(uno. matricula[x ],matri ); if(bandera==0){ gotoxy (6,4);printf("Matricula : "); gotoxy (6,6);printf("Nombre : "); gotoxy (6,8);printf("Domicilio : "); gotoxy (6,10);printf("Telefono : "); gotoxy (6,12);printf("Fecha de ingreso : "); gotoxy (6,14);printf("Especialidad : "); gotoxy (6,16);printf("Grupo : "); gotoxy (25,4);printf("%s",uno. matricula[x ]); gotoxy (25,6);printf("%s",uno. nombre[x ]); gotoxy (25,8);printf("%s",uno. domicilio[x ]); gotoxy (25,10);printf("%s",uno. telefono[x ]); gotoxy (25,12);printf("%s",uno. fecha[x ]); gotoxy (25,14);printf("%s",uno. especialidad[x ]); gotoxy (25,16);printf("%s",uno. grupo[x ]); gotoxy (25,4);gets(uno. matricula[x ]); gotoxy (25,6);gets(uno. nombre[x ]); gotoxy (25,8);gets(uno. domicilio[x ]); gotoxy (25,10);gets(uno. telefono[x ]); gotoxy (25,12);gets(uno. fecha[x ]); gotoxy (25,14);gets(uno. especialidad[x ]); gotoxy (25,16);gets(uno. grupo[x ]); } } gotoxy (6,24);printf("[R] Otra actualizacion"); gotoxy (6,25);printf("[TECLA CUALQUIERA] Continuar."); frank=getche(); clrscr(); } } registro_calificaciones(){ char matri[20]; int bandera=1; int x; char frank='o'; while(frank=='o' || frank=='O'){ gotoxy (4,3);printf("Matricula: "); gotoxy(4,3);clreol(); for(x=1; x<=ultimo; x++){ bandera =strcmp(uno. matricula[x ],matri ); if(bandera==0){ gotoxy (6,4);printf("Matricula : "); gotoxy (6,5);printf("Nombre : "); gotoxy (6,6);printf("Especialidad : "); gotoxy (6,7);printf("Grupo : "); gotoxy (25,4);printf("%s",uno. matricula[x ]); gotoxy (25,5);printf("%s",uno. nombre[x ]); gotoxy (25,6);printf("%s",uno. especialidad[x ]); gotoxy (25,7);printf("%s",uno. grupo[x ]); gotoxy (6,12);printf(" P1 P2 P3 CF "); gotoxy (6,14);printf("Geometria Analitica : "); gotoxy (6,16);printf("Estructura de Datos : "); gotoxy (6,18);printf("HTML : "); gotoxy (6,20);printf("CTSyV II : "); gotoxy (6,22);printf("Biologia : "); gotoxy (6,24);printf("Ingles II : "); gotoxy (29,14);printf("%i",uno. calif[x ][1]); gotoxy (29,16);printf("%i",uno. calif[x ][2]); gotoxy (29,18);printf("%i",uno. calif[x ][3]); gotoxy (29,20);printf("%i",uno. calif[x ][4]); gotoxy (29,22);printf("%i",uno. calif[x ][5]); gotoxy (29,24);printf("%i",uno. calif[x ][6]); gotoxy (29,14);scanf("%i",&uno. calif[x ][1]); gotoxy (29,16);scanf("%i",&uno. calif[x ][2]); gotoxy (29,18);scanf("%i",&uno. calif[x ][3]); gotoxy (29,20);scanf("%i",&uno. calif[x ][4]); gotoxy (29,22);scanf("%i",&uno. calif[x ][5]); gotoxy (29,24);scanf("%i",&uno. calif[x ][6]); } } gotoxy (6,27);printf("[O] Otro registro"); gotoxy (6,28);printf("[TECLA CUALQUIERA] Continuar."); frank=getche(); clrscr(); } } consulta_calificacion(){//ESTA ES LA FUNCION QUE ME GENERA EL PROBLEMA char matri[20]; int bandera=1; int x; char bob='o'; while(bob=='o' || bob=='O'){ gotoxy (4,3);printf("Matricula: "); gotoxy(4,3);clreol(); for(x=1; x<=ultimo; x++){ bandera =strcmp(uno. matricula[x ],matri ); if(bandera==0){ gotoxy (6,4);printf("Matricula : "); gotoxy (6,5);printf("Nombre : "); gotoxy (6,6);printf("Especialidad : "); gotoxy (6,7);printf("Grupo : "); gotoxy (25,4);printf("%s",uno. matricula[x ]); gotoxy (25,5);printf("%s",uno. nombre[x ]); gotoxy (25,6);printf("%s",uno. especialidad[x ]); gotoxy (25,7);printf("%s",uno. grupo[x ]); gotoxy (6,12);printf(" P1 P2 P3 CF "); gotoxy (6,14);printf("Geometria Analitica : "); gotoxy (6,16);printf("Estructura de Datos : "); gotoxy (6,18);printf("HTML : "); gotoxy (6,20);printf("CTSyV II : "); gotoxy (6,22);printf("Biologia : "); gotoxy (6,24);printf("Ingles II : "); gotoxy (29,14);printf("%i",uno. calif[x ][1]); gotoxy (29,16);printf("%i",uno. calif[x ][2]); gotoxy (29,18);printf("%i",uno. calif[x ][3]); gotoxy (29,20);printf("%i",uno. calif[x ][4]); gotoxy (29,22);printf("%i",uno. calif[x ][5]); gotoxy (29,24);printf("%i",uno. calif[x ][6]); } } gotoxy (6,27);printf("[O] Otra consulta"); gotoxy (6,28);printf("[TECLA CUALQUIERA] Continuar."); bob=getche(); clrscr(); } } impresion(){ char nombre[20]; char matricula[20]; char domicilio[20]; char telefono[20]; char fecha[20]; char especialidad[20]; char grupo[20]; int y, bandera1=0; textcolor(14); gotoxy(2,3);cprintf(" Matricula Nombre Telefono Fecha Ingreso Especialidad Grupo"); for (int x =2; x <=124; x ++){gotoxy (x ,4);printf("="); } for(int y=1; y<=ultimo; y++){ gotoxy (3,6+y );printf("%s",uno. matricula[y ]); gotoxy (20,6+y );printf("%s",uno. nombre[y ]); gotoxy (53,6+y );printf("%s",uno. telefono[y ]); gotoxy (68,6+y );printf("%s",uno. fecha[y ]); gotoxy (94,6+y );printf("%s",uno. especialidad[y ]); gotoxy (120,6+y );printf("%s",uno. grupo[y ]); } } main(){ _setcursortype ( _NOCURSOR ); char c; char frank='s'; while(frank=='s' || frank=='S'){ textcolor(14); gotoxy(12,4);cprintf("CONTROL ESCOLAR."); gotoxy (10,7);printf("1.- Alta de alumno."); gotoxy (10,9);printf("2.- Mantenimiento."); gotoxy (10,11);printf("3.- Registro de calificaciones."); gotoxy (10,13);printf("4.- Consulta de calificaciones."); gotoxy (10,15);printf("5.- Total de alumnos."); gotoxy (10,17);printf("6.- Salir."); c=getche(); switch(c){ case '1': clrscr(); captura(); break; case '2': clrscr(); actualizacion(); break; case '3': clrscr(); registro_calificaciones(); break; case '4': clrscr(); consulta_calificacion(); break; case '5': clrscr(); impresion(); break; case '6': clrscr(); return 0; break; }//Cierre Switch - Case gotoxy (6,24);printf("[S] Volver al menu"); gotoxy (6,25);printf("[TECLA CUALQUIERA] Salir."); frank=getche(); clrscr(); }//cierre WHILE }//Cierre MAIN
De antemano gracias, espero y puedan ayudarme a resolver mi problema, saludos. |