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
#include <stdio.h> #define MAX 10 int arreglo[MAX], cont = 0; void imprime_horizontal(int *p); void imprime_vertical(int *q); int main(void) { /** Ingresa valores del arreglo */ for (cont = 0; cont < MAX; cont++) { } /** Imprime diagrama horizontal */ imprime_horizontal(arreglo); /** Imprime diagrama vertical */ imprime_vertical(arreglo); return 0; } /** * Imprime los valores del arreglo formando un diagrama de barras horizontal * @param p Puntero del arreglo a imprimir */ void imprime_horizontal(int *p){ int x = 0, y = 0;//Ejes del diagrama for (y = 0; y < MAX; y++) { for (x = 0; x < *(p + y); x++) { } } } /** * Imprime los valores del arreglo formando un diagrama de barras vertical * @param q Puntero del arreglo a imprimir */ void imprime_vertical(int *q){ int referencia = 0; int x = 0, y = 0;//Ejes del diagrama for (cont = 0; cont < MAX ; cont++) { if ( *(q + cont) > referencia) { referencia = *(q + cont); } } for (y = 0; y < referencia; y++) { for (x = 0; x < MAX; x++) { } } }
Saludos