Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: andoporto en 6 Febrero 2015, 22:47 pm



Título: duda con ejercicio de matrices
Publicado por: andoporto en 6 Febrero 2015, 22:47 pm
Hola, tengo la siguiente codificación, debe calcular las diagonales principal y secundaria, el triángulo superior y la traza, no sé porqué pero no me acumula la variable de traza, qie puede ser?

Código:
#include <stdio.h>
#include <conio.h>

#define fil 2
#define col 2

int menu();
int * cargar_mat (int[fil][col],int* );
void mostrar_DP (int [fil][col]);
void mostrar_DS (int [fil][col]);
void mostrar_TS (int [fil][col]);
void mostrar_TR (int [fil][col]);

int main()
{
    int opc,mat[fil][col],cantElem=0;
    cargar_mat(mat,&cantElem);
    printf("\t escoja una opcion:");
    opc=menu();
    while(opc!=0)
    {
        switch(opc)
        {
        case 1:
        {
            mostrar_DP(mat);
            printf("\n");
            //printf("elementos:%d\n",cantElem);
        }
        break;
        case 2:
        {
            mostrar_DS(mat);
            printf("\n");
        }
        break;
        case 3:
        {
            mostrar_TS(mat);
            printf("\n");
        }
        case 4:
        {
            mostrar_TR(mat);
            printf("\n");
        }
        default:
        {

        } break;
        }
        printf("\t escoja una opcion:\n");
        opc=menu();
    }
    printf("\n");
    return 0;
}

int * cargar_mat (int mat[fil][col],int* cantE)
{
    int i,j;
    for(i=0; i<fil; i++)
    {
        for(j=0; j<col; j++)
        {
            printf("ingrese un numero: ");
            scanf("%d",&mat[i][j]);
            if(mat[i][j]==0)
                return  cantE;
            else
                (*cantE)++;
        }
    }
}


int menu()
{
    int opc;
    printf("\n");
    printf("\n1_ver diagonal principal\n2_ver diagonal secundaria\n3_triangulo superior\n4_traza\n0_salir\n");
    scanf("%d",&opc);
    printf("\n");
    return opc;
}

void mostrar_DP (int m[fil][col])
{
    int i;
    for(i=0; i<fil; i++)
        printf("%d\n",m[i][i]);
}


void mostrar_DS (int m[fil][col])
{
    int i;
    for(i=0; i<fil; i++)
        printf("%d\n",m[i][(col-1)-i]);
}

void mostrar_TS (int m[fil][col])
{
    int i;
    for(i=0; i<fil; i++)
        printf("%d\n",m[i][i]);
}

void mostrar_TR (int m[fil][col])
{
    int i;
    int acu=0;
    for(i=0; i<fil; i++)
    {
        acu+=m[i][i];
        printf("%d\n",acu);
    }

}



Título: Re: duda con ejercicio de matrices
Publicado por: engel lex en 6 Febrero 2015, 23:00 pm
ejecuto tu programa y si acumula... muestra que datos introduces y cuales esperas...

por cierto, evita usar conio, no es parte del standrad c, sin contar que este programa no lo necesita