Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: matrice  (Citit de 1914 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
mircea2011
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« : Mai 22, 2012, 20:46:41 »

Salut.
Am o problema :

Fie A o matrice patratica de dimensiune n, cu elemente de tip intreg. In fiecare linie, sa se schimbe intre ele elementele care se afla pe diagonala principala cu cele aflate pe diagonala secundara.
Sa se determine maximul elementelor din matrice excluzand pe cele aflate pe diagonale.

Prima cerinta am rezolvat-o, insa nu reusesc sa parcurg "doar" elementele din matrice excluzand diagonalele.  Brick wall

Cod:
#include<stdio.h>
#define p 16
#define q 16

int main()
{
    int A[p][q], b=0, d=0, m, n, r, i, j, k;
    printf("\n Dati numarul de linii (coloane) m = ");
    scanf("%d", &m);
    for(i=0; i<m; i++)
    {
        for(j=0; j<m; j++)
        {
            printf("\n A[%d][%d] = ", i+1, j+1);
            scanf("%d", &A[i][j]);
        }
    }
    printf("\n Matricea asociata este : \n\n");
    for(i=0; i<m; i++)
    {
        for(j=0; j<m; j++)
        {
            printf("\t %d", A[i][j]);
        }
        printf("\n\n");
    }
    for(i=0, j=0; i<m, j<m; i++, j++)
    {
        r=A[i][i];
        A[i][i] = A[i][m-j-1];
        A[i][m-j-1] = r;
    }
    printf("\n Matricea rezultat este : \n\n");
    for(i=0; i<m; i++)
    {
        for(j=0; j<m; j++)
        {
            printf("\t %d", A[i][j]);
        }
        printf("\n\n");
    }
    for(i=0; i<m; i++)
    {
        for(j=i; j<m; j++)
        {
                if(i!=j & b < A[i][j])
                b = A[i][j];
        }
    }
    printf("\n\n Maximul elementelor din matrice excluzand pe cele aflate pe diagonale : %d!\n", b);
}

Editat de admin: Foloseste tagul "code" cand postezi surse.
« Ultima modificare: Mai 22, 2012, 23:19:58 de către Andrei Grigorean » Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #1 : Mai 22, 2012, 20:52:07 »

Conditia sa fie pe diagonala principala e i = j, iar pe cea secundara i + j = n - 1. Cand calculezi maximul verifici prima data ca niciuna dintre aceste conditii sa nu fie indeplinita.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines