elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Porque el ciclo no se sigue ejecutado?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Porque el ciclo no se sigue ejecutado?  (Leído 2,025 veces)
StrikeOne

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Porque el ciclo no se sigue ejecutado?
« en: 25 Febrero 2012, 19:58 pm »

Hola, tengo una pregunta:

Código:
#include <stdio.h>

int prueba (long);

int main ()

{
    prueba(120);
    return 0;
   
}

int prueba(long a)
{
   // retorna prueba

   int b = 1, c; // alguito, pruebate
 
   for (c = 2; b && c <= a / 2; c++)
   {
       printf("Valores: A---> %i, B ---> %i, C----> %i\n", a, b, c);
      if (a % c == 0)
      {
           
            b = 0;
}
}

  printf("\n\nValores finales, B ---> %i, A ---> %i, C ----> %i", b, a, c);
   return b;
}

Porque el programa solo devuelve los Valores iniciales y los finales una vez?

Porque el ciclo for no se sigue ejecutando?

No se supone que cuando C valga 3, la condicion sera que si 0 && 3 <= 60 ... Entonces ..

No deberia seguir ejecutandose el codigo?

Gracias!


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Porque el ciclo no se sigue ejecutado?
« Respuesta #1 en: 25 Febrero 2012, 21:43 pm »

Hola

Cuando entra al for la primera vez los valores de las variables son:
a - 120
b - 1
c - 2

y lo primero que hace es imprimir sus valores (valores iniciales). Después tienes un if que comprueba si a % c == 0, que si supieras lo que significa % sabrías que sí se cumple, entonces entra en el if y al asignar 0 a la variable 'b' deja de cumplirse la condición del for, por lo que sale del for y se imprimen los valores finales.

Léete un buen libro de C/C++.

Para saber para qué sirve el operador % puedes leer este post.

Sería bueno que hicieras una traza con papel y boli de tu programa para que veas la ejecución del programa y dónde entra y tal.

Saludos


En línea

Breakbeat como forma de vida
StrikeOne

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Porque el ciclo no se sigue ejecutado?
« Respuesta #2 en: 25 Febrero 2012, 23:12 pm »

Hola

Cuando entra al for la primera vez los valores de las variables son:
a - 120
b - 1
c - 2

y lo primero que hace es imprimir sus valores (valores iniciales). Después tienes un if que comprueba si a % c == 0, que si supieras lo que significa % sabrías que sí se cumple, entonces entra en el if y al asignar 0 a la variable 'b' deja de cumplirse la condición del for, por lo que sale del for y se imprimen los valores finales.

Léete un buen libro de C/C++.

Para saber para qué sirve el operador % puedes leer este post.

Sería bueno que hicieras una traza con papel y boli de tu programa para que veas la ejecución del programa y dónde entra y tal.

Saludos

Hola!

Gracias por tu respuesta! Sabia lo que hacia el programa, lo unico que pasaba era que tenia un mal concepto de como funcionaba el operador &&.

Despues leyendo me entere que al asignar a b el valor de 0, cuando vuelve al for la condicion es falsa y por ende sale de este.

Gracias por la explicacion ^^
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
saber si esta ejecutado
Programación Visual Basic
xXnewbieXx 5 2,109 Último mensaje 26 Febrero 2006, 02:40 am
por APOKLIPTICO
Archivo.com ejecutado accidentalmente
Seguridad
Xedrox 9 7,458 Último mensaje 24 Noviembre 2010, 01:22 am
por Mr.Blue
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines