[C con Clase] El resultado del programa se muestra y se quita tan rapido que no puedo verlo.

Thor pablotoral en gmail.com
Dom Dic 31 05:16:14 CET 2006


Estoy siguiendo el libro de Deitel y Deitel de programacion en C, y el
codigo que da es general para cualquier compilador de C; por ejemplo este:

#include <stdio.h>

/* la función main inicia la ejecución del programa */
int main()
{
   /* inicializa las variables  en las definiciones */
   int aprobados = 0;  /* número de aprobados */
   int reprobados = 0; /* número de reprobados*/
   int estudiante = 1;  /* contador de estudiantes */
   int resultado;      /* resultado de un examen */

   /* procesa las calificaciones de 10 estudiantes mediante el uso de un
ciclo controlado por un contador */
   while ( estudiante <= 10 ) {

      /* indica al usuario la introducción del valor del usuario */
      printf( "Introduzca el resultado ( 1=aprobado,2=reprobado ): " );
      scanf( "%d", &resultado );

      /* si el resultado es igual a 1, incrementa aprobados */
      if ( resultado == 1 ) {
         aprobados = aprobados + 1;
      } /* fin de if */
      else { /* de lo contrario, incrementa reprobados */
         reprobados = reprobados + 1;
      } /* fin de else */

      estudiante = estudiante + 1; /* incrementa el contador de estudiante
*/
   } /* fin de while */

   /* fase de terminación; despliega el número de aprobados y reprobados */
   printf( "Aprobados %d\n", aprobados );
   printf( "Reprobados %d\n", reprobados );

   /* si aprobaron más de ocho estudiantes , imprime "objetivo alcanzado" */
   if ( aprobados > 8 ) {
      printf( "Objetivo alcanzado\n" );
   } /* fin de if */

   return 0; /* indica que el programa terminó con exito */

} /* fin de la función main */

Si lo ejecuto tal y como esta, me pide los datos, los ingreso pero al final
el resultado se muestra en pantalla y se quita tan rapido que no puedo
verlo; un amigo me sugirio esto para resolverlo por lo pronto:

   } /* fin de if */

   scanf( "%d", &estudiante );

   return 0; /* indica que el programa terminó con exito */

} /* fin de la función main */

Observen que se agrega la instruccion scanf  en la linea 41; con eso el
problema esta "aparentemente resuelto", pero no creo que sea la solucion mas
satisfactoria ya que con ello estoy cambiando el valo de una variable, y
tampoco creo que sea correcto definir una variable solo para eso; otra
sugerencia fue usar la instuccion getcher:

   } /* fin de if */

   getchar();

   return 0; /* indica que el programa terminó con exito */

} /* fin de la función main */

Pero con esto no funciona, lo de usar el getchar se me hace mas correcto,
tal vez necesite algo mas.

De antemano se agradece su valiosa ayuda.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061230/bcff5b0b/attachment.html>


Más información sobre la lista de distribución Cconclase