Programa que cuenta impares

Iniciado por talbarb, 29 Mayo 2015, 21:13 PM

0 Miembros y 1 Visitante están viendo este tema.

talbarb

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:

Código (cpp) [Seleccionar]
#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

engel lex

esto es un error

Código (cpp) [Seleccionar]
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

Código (cpp) [Seleccionar]
int impares = (numero_ingresado-16)/2 + numeroingresado%2;

el ciclo especifico (solo pasa por los que quieres contar)
Código (cpp) [Seleccionar]
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

Código (cpp) [Seleccionar]
int impares=0;
for(contador=16;contador<=numero_ingresado;contador++{
  if(contador%2!=0){
    impares++;
  }
}
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.