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.
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.
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...
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.
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;
}
(http://i68.tinypic.com/2gwdz0x.png)
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
No quedo claro para mi si el cuadrado es "lleno" o no........
Ojala se aclare para ver si ya esta la respuesta definitiva
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
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
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;
}
@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.
Hola.
Espero que por lo menos él mío lo pongan en segundo lugar. - :D :D :D
Daniel.
CitarEspero que por lo menos él mío lo pongan en segundo lugar. - :D :D :D
Seguro que si Daniel :xD ;D
Cita de: MAFUS en 14 Abril 2016, 17:46 PM
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;
}
Este es EL codigo jaja, muy simple y muy facil de comprender, muchas gracias, igual los de arriba me ayudaron mucho a entender el codigo.