Se consideră tabloul A [20][20] de numere întregi. Să se scrie un program
care creează un tablou unidimensional din elementele diagonale principale.
(Tablouri bidimensionale)
DE dorit sa fie facut in C.
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, n, nule=0, v[20], A[20][20];
printf("n = ");
scanf("%d",&n);
// citim elementele matricei
for(i = 0; i < n; i++ )
for(int j = 0; j < n; j++ )
scanf("%d",&A[i][j]);
// pentru a accesa diagonala principala in matrice parcurgem cu un for si folosim A[i][i]
for(i = 0; i < n; i++ )
v[i]=A[i][i];
printf("Vectorul format din elementele diag principala este:\n");
// afisare vector
for(i = 0; i < n ; i++)
printf("%d ",v[i]);
}
Explicație:
Pentru a accesa elementele de pe diagonala secundara faci in felul urmator:
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if( i == j )
prelucrez A[ i ][ j ]
SAU
for(i=0;i<n;i++)
prelucrez A[ i ][ i ]