for no funciona en programa

manuel iglesias rodriguez
04 de Septiembre del 2010
El problema es el siguiente:
Uso Dev Cpp, y quise hacer un programa en C que sumase todos los múltiplos de 5 entre dos numeros leídos por el teclado, y lo que hice fue esto:

#include <stdio.h>
#include <conio.h>

main()
{
int x, min, max, suma = 0;
printf( "Introduzca el mxA1nimo y el mxA0ximo de los nxA3meros:n" );
scanf( "%d %d", &min, &max);
x = min;
while(x != max)
{
if(x % 5 == 0)
suma += x;
x++;
}
printf( "La suma es igual a: %d", suma );
printf( "nPulse cualquier tecla para finalizar. " );
getch();
return 0;
}

**********************************

Pero pensé que el while se podría hacer perfectamente con un for, pero entonces lo que hice fue:

for(x = min ; x == max ; x++)
{
if(x % 5 == 0)
suma += x;
}

*********************

pero entonces no me saltaba error cuando compilaba, pero al ejecutarlo y probarlo, me saltaba que la suma era siempre 0.

Si alguien sabe el error del for, o una forma mejor de hacerlo estaria muy agradecido :D

Capitan Kirk
06 de Septiembre del 2010
El error lo tienes en la condición del bucle for. Has puesto x==max, con lo que estás indicando "continúa el bucle mientras x sea igual a max", lo que no ocurre cuando entras con min distinto de max. De hecho, el bucle no llega a ejecutarse. En tu caso, deberías poner

for(x = min ; x <= max ; x++)
{
if(x % 5 == 0)
suma += x;
}

Ahora, el bucle se recorrerá mientras x sea menor o igual que max.

Saludos,

manuel iglesias rodriguez
07 de Septiembre del 2010
Gracias! Siempre confundo esa segunda parte del for, la de "siempre que esto sea cierto" a "mientras que esto sea falso" o algo por el estilo. Gracias de nuevo por la aclaracion :)