Cuadrado en c++

Iniciado por ianmorar03, 14 Abril 2016, 00:33 AM

0 Miembros y 1 Visitante están viendo este tema.

ianmorar03

Hola gente.
Quiero hacer un cuadrado en c++
tengo este codigo

int numero=5;
char letra;
cin>>letra;
while(numero>0){
    cout>>letra;
    numero=numero+1;
}


Necesito que me imprima para abajo la misma cantidad de numeros, se que se hace con un salto de linea pero no se como.
Con while y no con for
Se les agradece la ayuda, muchas gracias.
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.

ivancea96

Tendrás que hacer 2 bucles, uno dentro del otro.

En el de fuera, primero tendrás un bucle dentro escribiendo toda una fila, y luego despues de ese bucle, un salto de línea.

En el de dentro, simplemente escribes la letra.

Utiliza 2 variables más para hacerlo: una para cada bucle.

ianmorar03

Cita de: ivancea96 en 14 Abril 2016, 00:37 AM
Tendrás que hacer 2 bucles, uno dentro del otro.

En el de fuera, primero tendrás un bucle dentro escribiendo toda una fila, y luego despues de ese bucle, un salto de línea.

En el de dentro, simplemente escribes la letra.

Utiliza 2 variables más para hacerlo: una para cada bucle.
Entendi lo que me quisiste decir, es como un ancho y un alto, pero necesito que con solo una entrada, me haga para abajo y a los lados...
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.

HardForo

Como te dicen, debes hacer 2 bucles ya que necesitas llenar todas las posiciones de una fila para cada columna (o de una columna para cada fila)

No hay otra.
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

NOB2014

#4
Hola .-
Si interprete correctamente lo que necesitas el siguiente programa logra el cometido, solo que está hecho en c, pasarlo a c++ debe ser tan simple como respirar. -

Vacio.
#include<stdio.h>

int main( void ){
int i = 0, b = 0, c = 0;

while( i < 20 ){
if( i == 19 && b == 0 ){
i = 0; b = 1;
}
if(  i == 19 && b == 1 ){
i = 0; b = 0;
printf("\n 5 5");
}
if( b == 0 )
printf(" 5");
else
printf( "\n 5                                   5" );

i++; c++;
if( c == 55 )
break;
}

return 0;
}




Lleno.

#include<stdio.h>

int main( void ){
int i = 0, c = 0;

while( i < 20 ){
if ( i == 19 ){
c++; i = 0; printf("\n");
}
if( c == 19 )
break;

printf("5");
i++;
}

return 0;
}


Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

HardForo

No quedo claro para mi si el cuadrado es "lleno" o no........

Ojala se aclare para ver si ya esta la respuesta definitiva
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

ianmorar03

Cita de: boctulus en 14 Abril 2016, 04:09 AM
No quedo claro para mi si el cuadrado es "lleno" o no........

Ojala se aclare para ver si ya esta la respuesta definitiva

boctulus el cuadrado es lleno, no es vacio
Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.

HardForo

#7
Entonces..... aca está, solo uso un while() y recursion para emular el otro bucle (ya que insistes que es solo 1 permitido)


#include <stdio.h>
#include <iostream>
#include <stdlib.h>

void draw_square(int n, int m, char * c){
int counter = m;

while (counter--) printf(c);
std::cout << std::endl;

n--;
if (n>0) draw_square(n,m,c);
}


int main(void){
int numero;
char car[10];

printf("Ingrese un numero entero pequeno: ");
scanf("%d",&numero);
itoa(numero,car,10);

draw_square(numero,numero,car);
return 0;
}


Sigo pensando te interpretamos mal y puedes usar dos bucles while(), en tal caso nos dices
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

MAFUS

#8
Solución sencilla, en C, sin control de errores de entrada.

#include <stdio.h>

int main() {
   int x;
   int x2;
   char c;
   
   printf("Caracter a imprimir > ");
   c = getchar();
   printf("Tamaño del lado del cuadrado > ");
   scanf("%i", &x);
   
   x2 = x*x;
   
   while(x2--) {
       putchar(c);
       if(x2 % x == 0)
           putchar('\n');
   }

    return 0;
}

HardForo

@MAFUS:  me gustó mucho tu código, realmente compacto  ;-)

Reordenando el mio sigue siendo mas largo, uso mas librerias y seguramente será mas lento y el ejecutable de mayor tamaño.
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *