• Miércoles 6 de Noviembre de 2024, 09:41

Autor Tema:  Piramide  (Leído 1576 veces)

badyalberto

  • Miembro activo
  • **
  • Mensajes: 77
    • Ver Perfil
Piramide
« en: Martes 6 de Enero de 2009, 20:16 »
0
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. int dibuixa_piramide(int alcada);
  5. int linea(char caracter, int alcada);
  6.  
  7. int main()
  8. {
  9.     int alcada,p;
  10.    
  11.     printf("Programa que dibuixa una piramide de asterics depenent de l'alcada que fiqui l'usuari.n");
  12.     printf("n");
  13.     printf("n");
  14.    
  15.     printf("Introdueix l'alcada:n");
  16.     scanf("%d", &alcada);
  17.    
  18.     p=dibuixa_piramide(alcada);
  19.    
  20.     getchar();
  21.     getchar();
  22. }
  23. int dibuixa_piramide(int alcada)
  24. {
  25.       int files,simbols,espai,l;
  26.       char caracter;
  27.      
  28.       printf("Introdueix el caracter que vols utilitzar: n");
  29.       fflush(stdin);
  30.       scanf("%c", &caracter);
  31.      
  32.       for (files = 1; files<=alcada; files++)
  33.      
  34.       l=linea(caracter,alcada);
  35. }        
  36. int linea(char caracter, int alcada)
  37. {
  38.     int espai,files,simbols;
  39.    
  40.           for (espai=1; espai<=alcada-files; espai++)
  41.           {
  42.               printf(" ");
  43.           }
  44.               for (simbols = 1; simbols<=files*2-1; simbols++)
  45.               {
  46.                   printf("%c",caracter);
  47.               }
  48.        printf("n");          
  49. }
  50.  
  51.  

Alguien sabe pq una vez introduzco el caracter, se me cierra el programa.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Piramide
« Respuesta #1 en: Miércoles 7 de Enero de 2009, 09:04 »
0
Primero, arregla las funciones para que devuelvan los valores que has declarado. Es decir, si pones int dibuixa_piramide, entonces no olvides hacer un return. Si no quieres devolver un valor, utiliza void dibuixa_piramide.

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Piramide
« Respuesta #2 en: Miércoles 7 de Enero de 2009, 11:29 »
0
no defines el valor de files, si empieza con un numero mayor que alcada no se ejecuta el for

tyrell

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Piramide
« Respuesta #3 en: Jueves 8 de Enero de 2009, 08:23 »
0
Cita de: "diego.martinez"
no defines el valor de files, si empieza con un numero mayor que alcada no se ejecuta el for
Efectivamente ese es el fallo, cambia lo siguiente:
l=linea(caracter,alcada);
por
l=linea(caracter,alcada,files);
y
int linea(char caracter, int alcada);
por
int linea(char caracter, int alcada,int files);

Elimina la variable local files de la funcion linea y debería funcionar.

badyalberto

  • Miembro activo
  • **
  • Mensajes: 77
    • Ver Perfil
Re: Piramide
« Respuesta #4 en: Jueves 8 de Enero de 2009, 15:43 »
0
okis, ya esta era eso muchas gracias  ^_^  ^_^

Sois los mejores  :D  :D