Programación General > C/C++

 Mezclar 2 For

(1/1)

tocinonaro:
Hola, tengo un problema.
Un enunciado me pide, muestre un programa en c, que imprima en pantalla los numeros desde un valor inicial, hasta un valor final, ingresados por el usuario, en forma descente como ascendente.

Yo hice el programa en principio de forma ascendente, luego lo hice descendente, pero no puedo Mezclarlos los 2, osea si los quiero mostrar de forma ascendente y descendente solo me muestra la primera forma.

En forma ascendente:


--- Citar ---#include <stdio.h>
#include <conio2.h>
main(){
       int i, b, x;
       denuevo:
       printf("Ingrese un valor inicial ");
       scanf("%d", &i);
       printf("Ingrese un valor final ");
       scanf("%d", &b);
       if(i < 1 || b < 0){
       printf("Ingrese un numero positivo");
       getche();
       clrscr();
       goto denuevo;}
       else{
      for(i=(i+1); i<b; i++){
      printf("Numeros %dn", i);
      }
      getche();
      }
      }
--- Fin de la cita ---

En forma descendente:


--- Citar ---#include <stdio.h>
#include <conio2.h>
main(){
       int i, b, x;
       denuevo:
       printf("Ingrese un valor inicial ");
       scanf("%d", &i);
       printf("Ingrese un valor final ");
       scanf("%d", &b);
       if(i < 1 || b < 0){
       printf("Ingrese un numero positivo");
       getche();
       clrscr();
       goto denuevo;}
       else{
      for(b=(b-1); i<b; b--){
      printf("Numeros %dn", b);
      }
      getche();
      }
      }
--- Fin de la cita ---

Ascendente y Descendente:


--- Citar ---#include <stdio.h>
#include <conio2.h>
main(){
       int i, b, x;
       denuevo:
       printf("Ingrese un valor inicial ");
       scanf("%d", &i);
       printf("Ingrese un valor final ");
       scanf("%d", &b);
       if(i < 1 || b < 0){
       printf("Ingrese un numero positivo");
       getche();
       clrscr();
       goto denuevo;}
       else{
       for(i=(i+1); i<b; i++)
      printf("Numeros %dn", i);
      for(b=(b-1); i<b; b--)
      printf("Numeros %dn", b);
      getche();
      }
      }
--- Fin de la cita ---

Como se ve en esta ultimo, lo que hice fue poner los 2 for, tanto el que cumplia la funcion de ascendente como el de descendente y no funciona el ultimo.
Saludos
Gracias desde ya!

punteroNULO:
En el primer for estás cambiando el valor de i, aumentandolo hasta que tiene el valor de b. Por lo que en el segundo bucle se inicia con un valor de i que no es el proporcionó el usuario.
La solución es una variable auxiliar:

--- Código: C ---#include <stdio.h>#include <conio2.h>main(){int i, b, x;denuevo:printf("Ingrese un valor inicial ");scanf("%d", &i);printf("Ingrese un valor final ");scanf("%d", &b);if(i < 1 || b < 0){printf("Ingrese un numero positivo");getche();clrscr();goto denuevo;}else{for(x=(i+1); x<b; x++)printf("Numeros %dn", x);for(b=(b-1); i<b; b--)printf("Numeros %dn", b);getche();}} 

Navegación

[0] Índice de Mensajes

Ir a la versión completa