elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda bucles for anidados
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda bucles for anidados  (Leído 2,191 veces)
ArnauCC

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Duda bucles for anidados
« en: 9 Noviembre 2018, 17:37 pm »

Hola buenas a todos, tengo que hacer un ejercicio usando solamente dos bucles for y condicionales. El ejercicio consiste de lo siguiente:
El usuario introduce un numero, y tiene que mostrarse una figura así:
Numero: 4
*
**
***
****
***
**
*
Llevo horas intentandolo y no consigo hacer la parte decreciente bien, alguien puede ayudarme?


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda bucles for anidados
« Respuesta #1 en: 9 Noviembre 2018, 18:15 pm »

Pues lo hice con While, pero si entienes como se forman estos, lo podras migrar facilmente a for

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main() {
  5. char temporal[20];
  6. int  N,i,j,k;
  7. printf("Cantidad: ");
  8. fgets(temporal,20,stdin);
  9. N = strtol(temporal,NULL,10);
  10. k=1;
  11. i = 0;
  12. while(i < (N+ (N-1))) {
  13. j = 0;
  14. while(j < ((i<N)? (i+1):(N-k) )) {
  15. putc('*',stdout);
  16. j++;
  17. }
  18. k+=(i>=N);
  19. putc('\n',stdout);
  20. i++;
  21. }
  22.  
  23. }
  24.  

Saludos!


En línea

ArnauCC

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda bucles for anidados
« Respuesta #2 en: 9 Noviembre 2018, 18:19 pm »

Tu codigo funciona perfectamente, pero estamos en un nivel muy inicial de c++ y no hemos trabajado esas funciones, asi que no puedo entregarlo asi
En línea

ArnauCC

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda bucles for anidados
« Respuesta #3 en: 9 Noviembre 2018, 18:21 pm »

El ejercicio es pasar este codigo que he hecho a uno que solo use dos bucles for:
#include <iostream>
using namespace std;

void main()
{
   setlocale(LC_CTYPE, "Spanish");
   int num;
   cout << "Número: ";
   cin >> num;

   for (int i = 1; i <= num; i++)
   {
      for (int j = 1; j <= i; j++)
      {
         cout << "*";
      }
      cout << endl;
   }
   for (int i = num; i >= 1; i--)
   {
      for (int j = 1; j <= i; j++)
      {
         cout << "*";
      }
      cout << endl;
   }


   system("pause");
}
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda bucles for anidados
« Respuesta #4 en: 9 Noviembre 2018, 18:37 pm »

Nivel avanzado de C?

Tengo 15 años programando en C y C++, y nunca he visto ni se, para que se utiliza la funcion "setlocale".... ni mi interesa saber para que es.


Código
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int  N,i,j,k;
  7. cout<< "Cantidad: ";
  8. cin>>N;
  9. k=1;
  10. i = 0;
  11. while(i < (N+ (N-1))) {
  12. j = 0;
  13. while(j < ((i<N)? (i+1):(N-k) )) {
  14. cout<<'*';
  15. j++;
  16. }
  17. k+=(i>=N);
  18. cout<<'\n';
  19. i++;
  20. }
  21. }
  22.  



Todavia lo quieres con FOR?

Código
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int  N,i,j,k;
  7. cout<< "Cantidad: ";
  8. cin>>N;
  9. k=1;
  10. for(i = 0; i < (N+ (N-1)); i++,k+=(i>=N) ) {
  11. for(j = 0; j < ((i<N)? (i+1):(N-k) );j++) {
  12. cout<<'*';
  13. }
  14. cout<<'\n';
  15. }
  16. }
« Última modificación: 9 Noviembre 2018, 18:57 pm por AlbertoBSD » En línea

ArnauCC

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda bucles for anidados
« Respuesta #5 en: 9 Noviembre 2018, 18:48 pm »

Ese codigo me funciona mal, al poner por ejemplo un 5 hace esto:
*
**
***
****
*****
***
**
*

falta una linea despues que llegue al maximo de asteriscos
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda bucles for anidados
« Respuesta #6 en: 9 Noviembre 2018, 18:53 pm »

Hola ArnauCC, el codigo lleva un error para que tu lo corrigas, ya se te dio un codigo que funciona y uno que no, si realmente te interesara aprender, estarias investigando. que hace o que no hace las partes del codigo que no entiendes, te aseguro que asi aprenderás mas.

Saludos
En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Duda bucles for anidados
« Respuesta #7 en: 10 Noviembre 2018, 00:45 am »

 ;-) Muy buena sugerencia Alberto.

15 años es mucha experiencia... creo que sólo usé C++ unos 5 meses, pero es todo un gusto que haya sido el 1er lenguaje que vi.
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema if's anidados
Programación C/C++
m@o_614 1 2,098 Último mensaje 27 Diciembre 2012, 03:45 am
por rir3760
Div anidados
Desarrollo Web
mapers 2 2,591 Último mensaje 18 Septiembre 2013, 07:24 am
por mapers
Duda con respecto al uso de bucles para extraer datos de un fichero.
Programación C/C++
Lagged Player 0 1,772 Último mensaje 25 Agosto 2017, 00:44 am
por Lagged Player
Angular 4 Array anidados duda
Desarrollo Web
alexis33de 0 1,288 Último mensaje 31 Enero 2019, 15:03 pm
por alexis33de
DOS BUCLES FOR ANIDADOS : DUDA
Programación C/C++
snoopty 2 2,690 Último mensaje 27 Septiembre 2021, 13:43 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines