Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Dado un valor N, imprima los inversos de los números de 1 a N

Estas en el tema de Dado un valor N, imprima los inversos de los números de 1 a N en el foro de C/C++ en Foros del Web. Dado un valor N, imprima los inversos de los números de 1 a N. Código: int main() { //Declaración de variables int liNumero; //Entrada de ...
  #1 (permalink)  
Antiguo 07/02/2015, 08:33
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Pregunta Dado un valor N, imprima los inversos de los números de 1 a N

Dado un valor N, imprima los inversos de los números de 1 a N.

Código:
int main()
{
    //Declaración de variables
    int liNumero;

    //Entrada de datos
    printf("Ingrese un n%cmero mayor que 1: ", 163);
    scanf("%d", &liNumero);

    if (liNumero <= 0)
    {
        printf("\nError!, el n%cmero debe ser mayor que 1.\n", 163);
        return 0;
    }

    //Procesamiento
    for (liNumero = 1; liNumero > 1; liNumero++)
    {
        printf("\nN%cmeros inversos!\n%d\n", 163, liNumero); //Salida de datos
        return 0;
    }

    return 0;
}
Hola, soy nuevo programando y estoy aprendiendo a usar FOR.
Qué error tengo en el código?.
Espero puedan ayudarme, saludos y gracias de antemano!!.
  #2 (permalink)  
Antiguo 07/02/2015, 09:19
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Dado un valor N, imprima los inversos de los números de 1 a N

Tu for nunca entra. Y si entra solo imprimiria una vez.

Al menos pon de tu parte.

Sintaxis del for
Código:
for(inicializacion; condicion; post instruccion) {
    ... // Sentencias
}
inicializacion, solo se ejecuta una vez al principio.
Despues se evalua la condicion, si la condicion es verdadera entra al bloque de sentencias del for y las ejecuta.
Despues ejecuta la post instruccion.
Si la condicion es falsa, termina el ciclo.

Código:
 for (liNumero = 1; liNumero > 1; liNumero++)
{
        printf("\nN%cmeros inversos!\n%d\n", 163, liNumero); //Salida de datos
        return 0;
}

Debuggin a mano:
liNumero = 1;
liNumero > 1; // 1 > 1, falso
*Termina el ciclo*
  #3 (permalink)  
Antiguo 07/02/2015, 10:02
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Dado un valor N, imprima los inversos de los números de 1 a N

Cita:
Iniciado por razpeitia Ver Mensaje
Tu for nunca entra. Y si entra solo imprimiria una vez.

Al menos pon de tu parte.

Sintaxis del for
Código:
for(inicializacion; condicion; post instruccion) {
    ... // Sentencias
}
inicializacion, solo se ejecuta una vez al principio.
Despues se evalua la condicion, si la condicion es verdadera entra al bloque de sentencias del for y las ejecuta.
Despues ejecuta la post instruccion.
Si la condicion es falsa, termina el ciclo.

Código:
 for (liNumero = 1; liNumero > 1; liNumero++)
{
        printf("\nN%cmeros inversos!\n%d\n", 163, liNumero); //Salida de datos
        return 0;
}

Debuggin a mano:
liNumero = 1;
liNumero > 1; // 1 > 1, falso
*Termina el ciclo*
No entiendo qué pasa con mi for

Código:
    for (liNumero = 1; liNumero > 1; liNumero++)
    {
        printf("\n%d", liNumero); //Salida de datos
    }
Entendí tu explicación pero creo que debería entrar. Si ingreso 10, 10 es mayor que 1 y deberia imprimirme todos los numeros del 1 hasta el 10.

Espero que me ayuden por favor. no entiendo mucho FOR.
  #4 (permalink)  
Antiguo 07/02/2015, 10:36
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Dado un valor N, imprima los inversos de los números de 1 a N

Lo que pasa es que el valor que pusiste en el scanf, lo deshechas cuando haces liNumero = 1 en tu for.
  #5 (permalink)  
Antiguo 07/02/2015, 10:47
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Dado un valor N, imprima los inversos de los números de 1 a N

Cita:
Iniciado por razpeitia Ver Mensaje
Lo que pasa es que el valor que pusiste en el scanf, lo deshechas cuando haces liNumero = 1 en tu for.
Hola, he hecho esto:
Código:
int main()
{
    //Declaración de variables
    int liNumero, liContador;

    //Entrada de datos
    printf("Ingrese un n%cmero mayor que 1: ", 163);
    scanf("%d", &liNumero);

    if (liNumero <= 0)
    {
        printf("\nError!, el n%cmero debe ser mayor que 1.\n", 163);
        return 0;
    }

    //Procesamiento
    for (liContador = 1; liNumero > 1; liContador++)
    {
        printf("\n%d", liContador); //Salida de datos
    }

    return 0;
}
y tampoco me funciona :(..
bueno de errores se aprende.

podrias ayudarme hermano :(
  #6 (permalink)  
Antiguo 07/02/2015, 11:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Dado un valor N, imprima los inversos de los números de 1 a N

Piensa mejor la condición, por que nunca cambia.

Tiene que haber una condición, que te diga cuando quieres detenerte.

Etiquetas: dado, int, numero, programa, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.