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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Imprimir un patron de asteriscos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Imprimir un patron de asteriscos  (Leído 6,651 veces)
dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Imprimir un patron de asteriscos
« en: 2 Febrero 2014, 17:19 pm »

Hola, buenas a todos de nuevo

Estoy atascado en un ejercicio del libro que estoy estudiando y algo se me tiene que escapar porque ya probé mil cosas y no doy con la tecla, os ongo el enunciado.



Esto es lo que tengo hecho, y no le veo el fallo de porque solo me saca una vez cada linea

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. int fila1 = 1;
  7. int fila2 = 1;
  8. int contador = 1;
  9.  
  10. while (contador <= 8){
  11. if (contador/2 != 0){
  12. while (fila1 <= 8){
  13. printf("* ");
  14. fila1 ++;
  15. }
  16. printf("\n");
  17. contador ++;
  18. }
  19. if (contador/2 == 0){
  20. printf(" ");
  21. while (fila2 <= 8){
  22. printf("* ");
  23. fila2 ++;
  24. }
  25. printf("\n");
  26. contador ++;
  27. }
  28. }
  29. return 0;
  30. }
  31.  

Y esto es lo que me tira este codigo



Pues eso, si podeis orientarme haber donde fallo, porque no lo veo  :rolleyes:

Un saludo


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Imprimir un patron de asteriscos
« Respuesta #1 en: 2 Febrero 2014, 17:41 pm »

Te falta reiniciar las variables fila1 y fila2 cada vez que invocas al while del contador.

Pero una forma, creo que más simple, y que produce la salida deseada:


Citar
* * * * * * * *
 *  *  *  *  *  *  *  *
* * * * * * * *
 *  *  *  *  *  *  *  *
* * * * * * * *
 *  *  *  *  *  *  *  *
* * * * * * * *
 *  *  *  *  *  *  *  *

podría ser:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int fila1 = 1;
  6. int fila2 = 1;
  7. int contador = 1;
  8.  
  9. for(contador=1;contador<=4;contador++) {
  10. fila1=fila2=1;
  11. while (fila1 <= 8){
  12. printf("* ");
  13.  
  14. fila1++;
  15. }
  16. printf("\n");
  17. while (fila2 <= 8){
  18. printf(" ");
  19. printf("* ");
  20.  
  21. fila2++;
  22. }
  23. printf("\n");
  24.  
  25. }
  26. return 0;
  27. }
  28.  

Claro que a lo mejor sólo puedes usar while. En este caso valdría:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int fila1 = 1;
  6. int fila2 = 1;
  7. int contador = 1;
  8.  
  9. while (contador<=4) {
  10. fila1=fila2=1;
  11. while (fila1 <= 8){
  12. printf("* ");
  13.  
  14. fila1++;
  15. }
  16. printf("\n");
  17. while (fila2 <= 8){
  18. printf(" ");
  19. printf("* ");
  20.  
  21. fila2++;
  22. }
  23. printf("\n");
  24.      contador++;
  25. }
  26. return 0;
  27. }
  28.  



¡¡¡¡ Saluditos! ..... !!!!






« Última modificación: 2 Febrero 2014, 17:59 pm por leosansan » En línea

dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Re: Imprimir un patron de asteriscos
« Respuesta #2 en: 2 Febrero 2014, 18:12 pm »

Si se me olvido comentarlo, solo puedo usar while e if que he lo que he estudiado asta ahora.

Vaya, hace algunos ejercicio tuve que hacer eso mismo y ahora se me paso  :-[  :-[

voy a terminar este con lo que me has dicho, estudio lo que me pusiste y miro las diferencias ;)

Un saludo
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Imprimir un patron de asteriscos
« Respuesta #3 en: 2 Febrero 2014, 18:30 pm »

Código
  1. }
  2. if (contador/2 == 0){
Pusiste eso. Elige 1: O incrementas el contador despues de los 2 "if", o pones ELSE-IF.
En línea

dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Re: Imprimir un patron de asteriscos
« Respuesta #4 en: 2 Febrero 2014, 18:31 pm »

Bueno, ya esta solucionado, habia que tocarle un par de cosas mas  :laugh:

Lo dejo por si a alguien mas le pudiera hacer falta

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. int fila1 = 1;
  7. int fila2 = 1;
  8. int contador = 0;
  9.  
  10. while (contador <= 8){
  11. fila1=fila2=1;
  12. if (contador%2 == 0){
  13. while (fila1 <= 8){
  14. printf("* ");
  15. fila1 ++;
  16. }
  17. printf("\n");
  18. contador ++;
  19. }
  20. if (contador%2 != 0){
  21. printf(" ");
  22. while (fila2 <= 8){
  23. printf("* ");
  24. fila2 ++;
  25. }
  26. printf("\n");
  27. contador ++;
  28. }
  29. }
  30. return 0;
  31. }
  32.  

Aqui la salida

Código:
 
* * * * * * * *
 * * * * * * * *
* * * * * * * *
 * * * * * * * *
* * * * * * * *
 * * * * * * * *
* * * * * * * *
 * * * * * * * *
* * * * * * * *
 * * * * * * * *


leosansan ahí te corrijo una pequeño fallo que tienes, pero igualmente muchas gracias ya que lo hice volando en cuanto me comentaste ;)

Te falta reiniciar las variables fila1 y fila2 cada vez que invocas al while del contador.

Pero una forma, creo que más simple, y que produce la salida deseada:


podría ser:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int fila1 = 1;
  6. int fila2 = 1;
  7. int contador = 1;
  8.  
  9. for(contador=1;contador<=4;contador++) {
  10. fila1=fila2=1;
  11. while (fila1 <= 8){
  12. printf("* ");
  13.  
  14. fila1++;
  15. }
  16. printf("\n");
  17. while (fila2 <= 8){
  18. printf(" ");
  19. printf("* ");
  20.  
  21. fila2++;
  22. }
  23. printf("\n");
  24.  
  25. }
  26. return 0;
  27. }
  28.  

Claro que a lo mejor sólo puedes usar while. En este caso valdría:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int fila1 = 1;
  6. int fila2 = 1;
  7. int contador = 1;
  8.  
  9. while (contador<=4) {
  10. fila1=fila2=1;
  11. while (fila1 <= 8){
  12. printf("* ");
  13.  
  14. fila1++;
  15. }
  16. printf("\n");
  17. while (fila2 <= 8){
  18. printf(" "); <---/*Esto no deberia de ir aqui, por eso no te cuadra las lineas*/
  19. printf("* ");     /*no se donde, pero aqui no  ;) */
  20.  
  21. fila2++;
  22. }
  23. printf("\n");
  24.      contador++;
  25. }
  26. return 0;
  27. }
  28.  



¡¡¡¡ Saluditos! ..... !!!!






Un saludooo
« Última modificación: 2 Febrero 2014, 18:36 pm por dmacias » En línea

dmacias

Desconectado Desconectado

Mensajes: 41


Ver Perfil WWW
Re: Imprimir un patron de asteriscos
« Respuesta #5 en: 2 Febrero 2014, 18:35 pm »

Código
  1. }
  2. if (contador/2 == 0){
Pusiste eso. Elige 1: O incrementas el contador despues de los 2 "if", o pones ELSE-IF.

Es que estaba mal, deberia haber sido

Código
  1.            if (contador%2 ==0){

Pero ya me percate en cuanto pude hecharlo a andar y ver el resultado

Gracias a los dos

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ocultar texto con * asteriscos en el cmd (archivo .bat)
Scripting
adninc5 5 22,635 Último mensaje 5 Julio 2014, 15:47 pm
por Herke
Separar strings con asteriscos (*) C# [Split] (?)
.NET (C#, VB.NET, ASP)
Kubynx 2 8,537 Último mensaje 14 Marzo 2011, 04:51 am
por Kubynx
[C] Rombo con asteriscos « 1 2 3 4 »
Programación C/C++
dmacias 30 69,318 Último mensaje 16 Marzo 2014, 16:17 pm
por leosansan
Duda C (While)Asteriscos
Programación C/C++
Boss3120 2 4,867 Último mensaje 17 Septiembre 2014, 03:49 am
por Blaster
Funciones y asteriscos (*)
Programación C/C++
MC.cover 1 1,898 Último mensaje 2 Marzo 2018, 05:55 am
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines