Hola buenas a todos, soy nueva en esto y queria ayuda con un pequeño programilla. Necesito que me cuente los numeros impares que hay entre el numero 16 y un numero que introduzca el usuario. Lo que tengo hecho es esto:
#include<stdio.h>
int main(void)
{
int numero, contador, impares=0;
printf("Introduzca un numero: ");
scanf("\n%d", &numero);
for(contador=16; contador<=numero; contador++);
{
while ((contador%2)!=0);
{
impares++;
}
}
printf("Hay %d numeros impares entre el 16 y %d", impares,numero);
return(0);
}
El problema es que siempre me dice que solo hay un numero impar.
Muchas gracias de antemano.
Mod: Los códigos deben ir en etiquetas GeSHi
esto es un error
while ((contador%2)!=0);
{
impares++;
}
ya que si contador es impar, el entrará al ciclo, sumará 1 al impar, preguntará ¿contador es impar?, de ser cierto, repite...
es un ciclo infinito
tienes algunas formas de hacer esto...
la forma matematica, una sola linea
int impares = (numero_ingresado-16)/2 + numeroingresado%2;
el ciclo especifico (solo pasa por los que quieres contar)
int impares=0;
for(contador=16;contador<=numero_ingresado;contador+=2){//a+=b, es lo mismo que a=a+b
impares++;
}
y el ciclo con if
int impares=0;
for(contador=16;contador<=numero_ingresado;contador++{
if(contador%2!=0){
impares++;
}
}