Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dany Solis en 12 Agosto 2017, 05:54



Título: Error en sintaxis Do While
Publicado por: Dany Solis en 12 Agosto 2017, 05:54
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:

Código:
#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


Título: Re: Error en sintaxis Do While
Publicado por: AndresEnriquezV en 12 Agosto 2017, 10:38
solucionado:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. int main()
  6. {
  7.    int i=1,n1,Min=737,Max=700077;
  8.    system("color 0B");
  9.  
  10.    printf("Programa que cuenta los digitos del numero introducido: ");
  11.    scanf("%d",&n1);
  12.   if((n1>Min)&&(n1<Max))
  13.        {
  14.        printf("El numero cumple la condicion:\n", n1);
  15. }
  16.        else
  17.        {
  18.        printf("El numero no cumple la condicion:\n", n1);
  19.   }
  20. do{
  21.  
  22.   n1=n1/10;
  23.        i++;
  24.    }
  25.    while((n1>Min)&&(n1<Max));
  26.  
  27.  
  28.    printf("Tiene %d caracteres",i);
  29.  
  30.    getch();
  31.    return 0;
  32. }

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


Título: Re: Error en sintaxis Do While
Publicado por: Dany Solis en 14 Agosto 2017, 02:23
Gracias problema resuelto....!