Error en sintaxis Do While

Iniciado por Dany Solis, 12 Agosto 2017, 05:54 AM

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

Dany Solis

Hola cordiales saludos a todos.

Tengo un problema en la sintaxis del siguiente código, no me marca ningún error, la idea es ingresar un numero entre 777 y 700077 y si esta fuera de este rango mostrar un mensaje "Numero fuera del rango" si esta dentro del rango entonces mostrar "Numero dentro del rango" y mostrar la cantidad de dígitos que tiene el numero ejemplo si es 1000 el numero tiene 3 caracteres, si es 45025 el numero tiene 5 caracteres, repito no me marca error pero me muestra el mensaje tantas veces la cantidad de dígitos que tiene el numero ingresado.

EDITO: El ejercicio necesito realizarlo en Do While
Si pudieran de favor ayudarme se los agradeceria:

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

int main()
{
   int i=1,n1,Min=737,Max=700077;
   system("color 0B");
   
   printf("Programa que cuenta los digitos del numero introducido: ");
   scanf("%d",&n1);


do{
if((n1>Min)&&(n1<Max))
       {
       printf("El numero cumple la condicion:\n", n1);
}
       else
       {
       printf("El numero no cumple la condicion:\n", n1);
}

       n1=n1/10;
       i++;
   }
   
   while(n1/10>0);
   
   printf("Tiene %u caracteres",i);
   
   getch();
   return 0;
}


Saludos

DS

AndresEnriquezV

solucionado:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
    int i=1,n1,Min=737,Max=700077;
    system("color 0B");
   
    printf("Programa que cuenta los digitos del numero introducido: ");
    scanf("%d",&n1);
   if((n1>Min)&&(n1<Max))
        {
        printf("El numero cumple la condicion:\n", n1);
}
        else
        {
        printf("El numero no cumple la condicion:\n", n1);
  }
do{
 
  n1=n1/10;
        i++;
    }
    while((n1>Min)&&(n1<Max));
   
   
    printf("Tiene %d caracteres",i);
   
    getch();
    return 0;
}


lo que hice fue sacar el if-else del do-while y listo, el if-else debe ir obligatriamente arriba del do-while ya que dentro del do-while estas modificando tu n1, tu programa anterior realizaba el if-else las veces que se cumplia el do-while y por eso se repetian los mensajes tantas veces como se realizava el ciclo do-while  :rolleyes: :rolleyes: ;-) ;-) saludos, espero haberte ayudado

Dany Solis

Gracias problema resuelto....!