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?
Pues lo hice con While, pero si entienes como se forman estos, lo podras migrar facilmente a for
#include<stdio.h>
#include<stdlib.h>
int main() {
char temporal[20];
int N,i,j,k;
printf("Cantidad: ");
fgets(temporal,20,stdin);
N = strtol(temporal,NULL,10);
k=1;
i = 0;
while(i < (N+ (N-1))) {
j = 0;
while(j < ((i<N)? (i+1):(N-k) )) {
putc('*',stdout);
j++;
}
k+=(i>=N);
putc('\n',stdout);
i++;
}
}
Saludos!
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
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");
}
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.
#include<iostream>
using namespace std;
int main() {
int N,i,j,k;
cout<< "Cantidad: ";
cin>>N;
k=1;
i = 0;
while(i < (N+ (N-1))) {
j = 0;
while(j < ((i<N)? (i+1):(N-k) )) {
cout<<'*';
j++;
}
k+=(i>=N);
cout<<'\n';
i++;
}
}
Todavia lo quieres con FOR?
#include<iostream>
using namespace std;
int main() {
int N,i,j,k;
cout<< "Cantidad: ";
cin>>N;
k=1;
for(i = 0; i < (N+ (N-1)); i++,k+=(i>=N) ) {
for(j = 0; j < ((i<N)? (i+1):(N-k) );j++) {
cout<<'*';
}
cout<<'\n';
}
}
Ese codigo me funciona mal, al poner por ejemplo un 5 hace esto:
*
**
***
****
*****
***
**
*
falta una linea despues que llegue al maximo de asteriscos
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
;-) 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.