Problema con un codigo que no funciona como debe hacerlo

Iniciado por ThronerAXE, 7 Marzo 2013, 04:06 AM

0 Miembros y 1 Visitante están viendo este tema.

leosansan

Cita de: ThronerAXE en 11 Marzo 2013, 03:59 AM
.........................................................................
lo de "ban" significa banderas que me lo dieron en la universidad que significa que cuando la bandera vale 0 es falso y cuando vale 1 o es diferente de 0 es verdadero. 

No es una función del C es algo que se  implementa por el usuario   y se usa para paliar la falta de una variable tipo bool en C, a diferencia del C++ que sí la incorpora. Por eso la tienes mal implementada en el código. En esencia funciona cuando le asignamos el valor 0 si ocurre tal cosa o el valor 1 si ocurre esta otra cosa  luego, según el valor 0 o 1 que tenga tomamos una decisión u otra, pero eres tú el que en el código tienes que implementar todo eso.

Citar
Otro temita que entiendo es por que en esta parte del codigo:
      do
      {
          if(aux==expediente[k])
          {  printf("\n\nEl expediente %d tiene una beca de tipo %c",expediente[k],beca[k]);
             getch();
             break;
          }

la parte del "break" lo tuve que incluir porque si no lo incluia, al momento de dar la salida de la beca del estudiante, la da pero nunca terminaba..........................

Eso es porque tienes mal implementada la variable ban, por ejemplo:

Código (cpp) [Seleccionar]
k=0;
    ban=0;
      do
      {
          system("cls");
            printf("\n\nIngrese el No. del expediente a consultar: ");
            scanf("%d",&aux);
          if(aux==expediente[k])
          {  printf("\n\nEl expediente %d tiene una beca de tipo %c",expediente[k],beca[k]);
            ban=1;
          }
          else
            ++k;
      }while( !ban && k<i);
     if (!ban)
        printf("\n\nEl Expediente buscado no existe!!! ");


Saluditos!. ...