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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 91


Ver Perfil
Re: problema en c
« Respuesta #10 en: 19 Diciembre 2012, 09:25 am »

Gracias tambien a ti naderST


En línea

paulmil

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: problema en c
« Respuesta #11 en: 22 Diciembre 2012, 18:11 pm »

Buenas, tambien estoy aprendiendo a programar en C y por ende cai al foro  ;D

Me pareció buena practica hacer el ejercicio aqui planteado, así que lo hice respetando la solucion propuesta pero con punteros. Ademas los valores del arreglo son cualquier entero e ingresados por teclado

Código
  1. #include <stdio.h>
  2. #define MAX 10
  3.  
  4. int arreglo[MAX], cont = 0;
  5.  
  6. void imprime_horizontal(int *p);
  7. void imprime_vertical(int *q);
  8.  
  9. int main(void) {
  10. /** Ingresa valores del arreglo */
  11. for (cont = 0; cont < MAX; cont++) {
  12. printf("arreglo[%d] = ", cont);
  13. scanf("%d", &arreglo[cont]);
  14. fflush(stdin);
  15. }
  16. printf("\n\n");
  17.  
  18. /** Imprime diagrama horizontal */
  19. imprime_horizontal(arreglo);
  20. printf("\n");
  21.  
  22. /** Imprime diagrama vertical */
  23. imprime_vertical(arreglo);
  24. printf("\n");
  25.  
  26. printf("Presione una tecla para continuar...");
  27. return 0;
  28. }
  29.  
  30. /**
  31.  * Imprime los valores del arreglo formando un diagrama de barras horizontal
  32.  * @param p Puntero del arreglo a imprimir
  33.  */
  34. void imprime_horizontal(int *p){
  35. int x = 0, y = 0;//Ejes del diagrama
  36.  
  37. for (y = 0; y < MAX; y++) {
  38.    for (x = 0; x < *(p + y); x++) {
  39.     printf("*");
  40.    }
  41.    printf("\n");
  42. }
  43.  
  44. }
  45.  
  46. /**
  47.  * Imprime los valores del arreglo formando un diagrama de barras vertical
  48.  * @param q Puntero del arreglo a imprimir
  49.  */
  50. void imprime_vertical(int *q){
  51. int referencia = 0;
  52. int x = 0, y = 0;//Ejes del diagrama
  53.  
  54. for (cont = 0; cont < MAX ; cont++) {
  55. if ( *(q + cont) > referencia) {
  56.    referencia = *(q + cont);
  57. }
  58. }
  59.  
  60. for (y = 0; y < referencia; y++) {
  61. for (x = 0; x < MAX; x++) {
  62. if ( *(q + x) > y) printf("*");
  63. else printf(" ");
  64. }
  65.    printf("\n");
  66. }
  67. }

Saludos


En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema BlueZScanner y problema de conexión
Hacking Mobile
Kasswed 3 6,278 Último mensaje 6 Mayo 2006, 22:04 pm
por Gospel
Problema Css o problema con el sidebar
Desarrollo Web
gaboomsk8 6 3,557 Último mensaje 27 Diciembre 2011, 21:56 pm
por gaboomsk8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines