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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Duda en programación C:
« en: 6 Septiembre 2014, 11:55 am »

Hola a todos de nuevo, veréis, me he atascado en un programita de C, es un ejercicio de un manual que estoy haciendo. El enunciado dice así:

1)Escriba un programa que imprima los patrones siguientes de manera separada, uno debajo del otro. Utilice ciclos
for para generar los patrones. Todos los asteriscos (*) deben imprimirse mediante una sola instrucción printf
de la forma printf(“*”); (esto provoca que los asteriscos se impriman uno al lado del otro). Pista: Los dos últimos
patrones requieren que cada línea comience con el número apropiado de espacios en blanco.
Los dibujos están en el código en forma de comentario, hay 4 aunque solo aparecen 3 pues es en el que tengo la duda, y una vez sepa el 3, el 4 yo creo que podré sacarlo.
Dejo también los dos primeros, aunque esos si me han salido sin problema, aunque si veis algo que podría optimizarse un poco o cualquier observación, siempre se agradece  :rolleyes:
Ahí va:
Código
  1.  
  2.  
  3. #include<stdio.h>
  4. int main(){
  5. int i,j=10;
  6. int espacios;
  7.  
  8.  
  9.  
  10. /* A)
  11. *
  12. **
  13. ***
  14. ****
  15. *****
  16. ******
  17. *******
  18. ********
  19. *********
  20. */
  21. for(i=1;i<=10;i++){
  22. for(j=1;j<=i;j++){
  23. printf("*");
  24.    }
  25. printf("\n");
  26. }
  27. printf("\n\n");
  28.  
  29.  
  30. /* B)
  31. **********
  32. *********
  33. ********
  34. *******
  35. ******
  36. *****
  37. ****
  38. ***
  39. **
  40. *
  41. */
  42.   for(i=1;i<=10;i++){
  43. for(j=10;j>=i;j--){
  44. printf("*");
  45.    }
  46.   printf("\n");
  47. }
  48. printf("\n\n");
  49.  
  50.  
  51. /* C)
  52. **********
  53.  *********
  54.   ********
  55.    *******
  56.     ******
  57.      *****
  58.       ****
  59.        ***
  60.         **
  61.          *
  62. */
  63.   for(i=1;i<=10;i++){
  64.      for(espacios=1;espacios<=10-j;espacios++)
  65.     printf(" ");
  66.      for(j=10;j>=i;j--){
  67.     printf("*");
  68.  }
  69.      printf("\n");
  70.   }    
  71.  
  72. return 0;
  73. }
  74.  
  75.  
La figura C) es la que me falla, me sale una representación bastante distinta, es algo así:

 **********
                *********
               ********
              *******
            *******
          *******
        *****
......
y así
Gracias por las ayudas de antemano.


En línea

Si se puede imaginar, se puede programar.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda en programación C:
« Respuesta #1 en: 6 Septiembre 2014, 13:35 pm »

Ahí j empieza siendo como terminó en el patrón B. Inicializa j. Luego, sis igue mal, vuelve a decir por aquí.


En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Duda en programación C:
« Respuesta #2 en: 6 Septiembre 2014, 14:02 pm »

La figura C) es la que me falla, me sale una representación bastante distinta, es algo así:

Debería quedar mas o menos así:

Código
  1. for(i = 1; i <= 10; i++)
  2. {  
  3.  for(j = 1; j < i; j++) printf(" ");
  4.     for(j = 10; j >= i; j--) printf("*");
  5.  printf("\n");
  6. }  
  7.  

Saludos
« Última modificación: 6 Septiembre 2014, 14:42 pm por Blaster » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Duda en programación C:
« Respuesta #3 en: 6 Septiembre 2014, 16:21 pm »

La figura C) es la que me falla, me sale una representación bastante distinta, es algo así:

 **********
                *********
               ********
              *******
            *******
          *******
        *****
......
Cuando publiques un dibujo en texto por favor utiliza etiquetas [ code ] para preservar el espaciado. ¿No sera algo así?
Código:
          **********
         *********
        ********
       *******
      ******
     *****
    ****
   ***
  **
 *
En este caso se imprimen diez lineas cada una con el mismo numero de espacios y asteriscos, empezando con diez y terminando con uno. Para hacerlo solo tienes que aplicar lo aprendido en los ejercicios anteriores.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Error 404:

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Re: Duda en programación C:
« Respuesta #4 en: 8 Septiembre 2014, 03:03 am »

Hola, gracias por la ayuda. rir3760 el dibujo era como lo había puesto, era raro pero si, era como puse al principio.
ivancea96 ya había pensado en eso y lo probé, pero al ver que no variaba en nada el resultado decidí quitarlo, aunque gracias por la sugerencia.
Blaster gracias por tu ayuda, lo he hecho y a funcionado, y he entendido como funciona asi que muchas gracias  ;D.
Gracias a todos por vuestra ayuda, de veras, gracias a este foro he podido avanzar bastante, mucho más de lo que lo hubiera hecho si estuviera totalmente solo sin ninguna ayuda, ya que este foro es mi única ayuda, además de los manuales  :rolleyes:
En línea

Si se puede imaginar, se puede programar.
Hacknel

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Duda en programación C:
« Respuesta #5 en: 13 Octubre 2019, 00:31 am »

Codigo Funcional

Código
  1. //Creacion: 08/10/2019 22:10 AM
  2. //Modificacion: 12/10/2019 16:22 PM
  3. /*
  4. Escriba un programa que imprima los patrones siguientes de manera separada, uno debajo del otro. Utilice ciclosforpara generar los patrones.
  5. Todos los asteriscos (*) deben imprimirse mediante una sola instrucción printfde la forma printf(“*”); (esto provoca que los asteriscos se impriman uno al lado del otro).
  6. Pista:Los dos úl-timos patrones requieren que cada línea comience con el número apropiado de espacios en blanco.
  7. */
  8.  
  9.  
  10. #include <stdio.h>
  11.  
  12.  
  13. int main()
  14. {
  15. //se definen variables
  16. int i,j,k;
  17.  
  18. //primera piramide
  19. //para columnas
  20. for(i=1;i<=10;i++)
  21. {
  22. //para filas
  23. for(j=1;j<=i;j++)
  24. {
  25. printf("*");
  26. }
  27. printf("\n");
  28. }
  29.  
  30. printf("\n");
  31.  
  32. //segunda piramide
  33. //para columnas
  34. for(i=1;i<=10;i++)
  35. {
  36. //para filas
  37. for(j=10;j>=i;j--)
  38. {
  39. printf("*");
  40. }
  41. printf("\n");
  42. }
  43.  
  44. printf("\n");
  45.  
  46. //tercera figura
  47. //para columnas
  48. for(i=1;i<=10;i++)
  49. {
  50. //para espacios
  51. for(j=1;j<=i;j++)
  52. {
  53. printf(" ");
  54. }
  55. //para filas
  56. for(k=10;k>=i;k--)
  57. {
  58. printf("*");
  59. }
  60. printf("\n");
  61. }
  62.  
  63.   printf("\n");
  64.  
  65. //cuarta figura
  66. //para columnas
  67. for(i=1;i<=10;i++)
  68. {
  69. //para espacios
  70. for(j=10;j>=i;j--)
  71. {
  72. printf(" ");
  73.   }
  74.   //para filas
  75.       for(k=1;k<=i;k++)
  76.       {
  77.     printf("*");
  78. }
  79.       printf("\n");
  80.   }    
  81.  
  82.  
  83. return 0;
  84. }
  85.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda programación
Programación General
Franki 5 3,902 Último mensaje 15 Mayo 2010, 11:34 am
por Kase
Duda de programacion
Dudas Generales
Dimitrixs 2 2,701 Último mensaje 8 Agosto 2011, 23:52 pm
por sepan
[Duda] programacion en c
Programación C/C++
gonpiar 4 2,702 Último mensaje 4 Marzo 2012, 23:37 pm
por rir3760
duda de programacion web
Desarrollo Web
nprio 3 2,283 Último mensaje 29 Abril 2012, 03:09 am
por engel lex
DUDA-Programación en C
Programación C/C++
mariota1 4 2,182 Último mensaje 21 Octubre 2012, 03:03 am
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines