Hola, tengo una pregunta:
#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!
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 (http://foro.elhacker.net/programacion_cc/c_linux_explicacion_de_codigo_principiante-t351953.0.html;msg1712823#msg1712823) 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
Cita de: satu 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 (http://foro.elhacker.net/programacion_cc/c_linux_explicacion_de_codigo_principiante-t351953.0.html;msg1712823#msg1712823) 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 ^^