es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Visualización de arrays en C con función.

¿Alguien sabe cómo podría representar un arreglo como {5, 0, 2, 6}, por ejemplo, como se muestra en la siguiente imagen, a través de una función en C?

enter image description here

Soy nuevo en C, así que realmente agradecería algo de ayuda aquí 🙂

Esto es todo lo que tengo por ahora:

“`c
#include <stdio.h>

int Diagrama(int i, int x, int y, int v[])
{
printf("y+\n");

<pre><code>for(i = 0; i <= y; i++){
printf(" |\n");
}
printf(" ");
for(i = 0; i <= x; i++){
printf("+—");
}
printf("+x");

return 0;
</code></pre>

}

int main()
{
int i;
int y = 10;
int x = 5;
int v[4] = {5, 0, 2, 6};

<pre><code>Diagrama(i, 5, 10, v);

return 0;
</code></pre>

}
“`</stdio.h>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no está claro qué quieres que haga la función con el array. En la imagen de ejemplo que proporcionaste, el array simplemente se muestra en forma de cuadrícula. Si eso es todo lo que quieres que haga la función, entonces el código que proporcionaste es un buen punto de partida.

    Sin embargo, hay algunos errores en el código que deben corregirse para mostrar correctamente el array. Por ejemplo, el bucle que imprime las líneas verticales solo debe iterar hasta x, no y. Además, debe haber un bucle que imprima los números en el array dentro de cada celda de la cuadrícula.

    Aquí tienes una versión actualizada de la función Diagrama que debería funcionar:

    int Diagrama(int x, int y, int v[]) {
        int i, j;
    
        printf("y+\n");
    
        for (i = 0; i <= y; i++) {
            printf(" |\n");
        }
    
        for (i = 0; i <= x; i++) {
            printf("+---");
        }
    
        printf("+x\n");
    
        for (i = 0; i < 4; i++) {
            printf("| %d ", v[i]);
        }
    
        printf("|\n");
    
        for (i = 0; i <= x; i++) {
            printf("+---");
        }
    
        printf("+\n");
    
        return 0;
    }
    

    Aquí, x e y determinan el tamaño de la cuadrícula (en las direcciones vertical y horizontal, respectivamente), y v es el array que se mostrará. La función funciona imprimiendo una serie de caracteres ASCII (signos más, guiones, barras verticales y espacios) para crear la cuadrícula, y luego imprimiendo los valores del array en las celdas correspondientes.

    Para usar la función, simplemente llámala desde main con los parámetros deseados:

    int main() {
        int v[4] = {5, 0, 2, 6};
    
        Diagrama(4, 10, v);
    
        return 0;
    }
    

    Esto producirá una salida similar a la imagen de ejemplo que proporcionaste:

    y+
     |
     |
     |
     |
     |
     |
     |
     |
     |
     |
     +---+---+---+---+x
     | 5 | 0 | 2 | 6 |
     +---+---+---+---+
    

Comments are closed.