Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Alguna idea para salir salir de este FOR y printear un mensaje en C

Estas en el tema de Alguna idea para salir salir de este FOR y printear un mensaje en C en el foro de C/C++ en Foros del Web. Código: int liContador1, liContador2, liElse = 0; for (liContador1 = 1; liContador1 <= liNumeroB; liContador1++) { for (liContador2 = liContador1 + 1; liContador2 <= liNumeroB; ...
  #1 (permalink)  
Antiguo 31/03/2015, 22:07
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 7 meses
Puntos: 5
Pregunta Alguna idea para salir salir de este FOR y printear un mensaje en C

Código:
int liContador1, liContador2, liElse = 0;

    for (liContador1 = 1; liContador1 <= liNumeroB; liContador1++)
    {
        for (liContador2 = liContador1 + 1; liContador2 <= liNumeroB; liContador2++)
        {
            if (NumerosAmigos(liContador1, liContador2))
                printf("\n%d, %d", liContador1, liContador2);

            else
                liElse++;
        }
    }

    if (liElse != 0)
        printf("\nLos n%cmeros no son amigos.\n", 163);
Estoy haciendo un programa para buscar los números amigos anteriores a un valor dado. El programa printea la pareja de números encontrados pero, necesito mostrar un mensaje si no existe ninguna pareja de números amigos.

El problema es que no se me ocurre ninguna forma de hacerlo. He intentado con BREAK, CONTINIUE, CONTADORES..

Ahora mismo tengo:
Código:
else
                liElse++;
fue lo último que estaba probando.

Alguien tiene alguna idea sobre cómo puedo hacer para resolver esto?.

Saludos y gracias a todos por ayudarme!.
  #2 (permalink)  
Antiguo 31/03/2015, 22:42
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 3 meses
Puntos: 1360
Respuesta: Alguna idea para salir salir de este FOR y printear un mensaje en C

Que haya pasado por el else no significa que nunca paso por el if primero.

La opción mas obvia es decir, entro por el if entonces hubo parejas, nunca entro por el if entonces no hubo parejas.

Código C:
Ver original
  1. int liContador1, liContador2, entro = 0;
  2.  
  3.     for (liContador1 = 1; liContador1 <= liNumeroB; liContador1++)
  4.     {
  5.         for (liContador2 = liContador1 + 1; liContador2 <= liNumeroB; liContador2++)
  6.         {
  7.             if (NumerosAmigos(liContador1, liContador2)) {
  8.                 printf("\n%d, %d", liContador1, liContador2);
  9.                 entro = 1;
  10.             }
  11.         }
  12.     }
  13.  
  14.     if (entro)
  15.         printf("\nLos n%cmeros no son amigos.\n", 163);
  #3 (permalink)  
Antiguo 31/03/2015, 22:51
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: Alguna idea para salir salir de este FOR y printear un mensaje en C

Cita:
Iniciado por razpeitia Ver Mensaje
Que haya pasado por el else no significa que nunca paso por el if primero.

La opción mas obvia es decir, entro por el if entonces hubo parejas, nunca entro por el if entonces no hubo parejas.

Código C:
Ver original
  1. int liContador1, liContador2, entro = 0;
  2.  
  3.     for (liContador1 = 1; liContador1 <= liNumeroB; liContador1++)
  4.     {
  5.         for (liContador2 = liContador1 + 1; liContador2 <= liNumeroB; liContador2++)
  6.         {
  7.             if (NumerosAmigos(liContador1, liContador2)) {
  8.                 printf("\n%d, %d", liContador1, liContador2);
  9.                 entro = 1;
  10.             }
  11.         }
  12.     }
  13.  
  14.     if (entro)
  15.         printf("\nLos n%cmeros no son amigos.\n", 163);
Valla, gracias muchas muchas gracias, no había pensado eso

Etiquetas: alguna, idea, int, mensaje, numero, programa, salir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:34.