Matrices en lenguaje C.

Si eres principiante y tienes alguna consulta entra en este foro.
Responder
Mensaje
Autor
Fran505
Mensajes: 3
Registrado: 04/09/2019 2:15 pm

Matrices en lenguaje C.

#1 Mensaje por Fran505 » 05/09/2019 3:03 am

Hola muy buenos días, soy principiante y les quiero plantear el siguiente problema:
Debo ingresar los datos en una matriz 3x3 que los lea y mostrarla (Hasta aquí todo listo).
Luego viene lo que no se hacer bien que es: De mi matriz mostrar también los 3 valores de la primera columna en un array lineal, o sea, en una fila.
Si pudieran ayudarme se lo agradecería mucho, gracias por leer.

Hola ahi esta mi codigo

Código: Seleccionar todo

//Función: Mostrar la matriz 3x3 mas los elementos de la primera columna en un array.
void array_matriz(){
int i, j;
int n[3][3] = {0};
int a [3] ;
float col[1]={0};

for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("Introduzca el %i valor de la %i fila: ",j+1,i+1);
scanf("%i",&n[j]);
}
}

printf("\nLa matriz resulta ser:\n\n");

for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%i",n[j]);
}
a[3]=0;
printf("\n");
}

for(i=0;i<3;i++){
for(j=0;j<3;j++){
col[0]+=n[j];
}
}

//Luego aqui debo imprimir un array que me imprima los elementos de la primera columna de la matriz anterior
Última edición por mollok el 06/09/2019 12:59 am, editado 1 vez en total.
Razón: Los códigos deben ir entre etiquetas 'code', botón </>

dehm
Mensajes: 311
Registrado: 29/04/2011 7:31 am

Re: Matrices en lenguaje C.

#2 Mensaje por dehm » 05/09/2019 3:25 am

Hola.

Lo primero de todo es que tienes un fallo aquí:

Código: Seleccionar todo

scanf("%i",&n[j]);
y aquí:

Código: Seleccionar todo

printf("%i",n[j]);
Ya que el valor que quieres introducir/mostrar es el elemento [ i ][ j ] de la matriz.

Luego una sugerencia, intenta definir todos los valores que puedas como variables, no como literales. Esto hará que tu programa sea escalable en el futuro, y que por tanto para cambiar un valor no tengas que ir buscando todas las apariciones de ese valor literal.

En tu caso te sugiero que definas el tamaño del array con un #define o con un const int (este último tendrías que hacerlo global -mala práctica, o pasarlo como parámetro a la función).

Código: Seleccionar todo

#include <stdio.h>
#define TAM 3
void array_matriz();
int main()
{
    array_matriz();

return 0;
}
Y luego:

Código: Seleccionar todo

void array_matriz()
{
    int i, j;
    int n[TAM][TAM] = {0};
    int a [TAM] ;
    float col[1]= {0};

    for(i=0; i<TAM; i++)
    {
        for(j=0; j<TAM; j++)
        {
            printf("Introduzca el %i valor de la %i fila: ",j+1,i+1);
            scanf("%i",&n[i][j]);
        }
    }

    printf("\nLa matriz resulta ser:\n\n");

    for(i=0; i<TAM; i++)
    {
        for(j=0; j<TAM; j++)
        {
            printf("%i",n[i][j]);
        }
        a[TAM]=0;
        printf("\n");
    }

    for(i=0; i<TAM; i++)
    {
        for(j=0; j<TAM; j++)
        {
//            col[0]+=n[j];
        }
    }
}
Ahora no parece muy importante, pero con programas más largos si supone un problema y una fuente de errores. Al final con el tiempo te acostumbras a estas buenas prácticas.

Y sobre la duda en cuestíón...los valores de la primera columna son los [n][0]
Es decir, recorre todas las filas del array y solo tienes que mostrar los valores cuyo segundo índice es = 0.
Aprendiendo

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 8 invitados