Informatică, întrebare adresată de CosminAndrei22, 8 ani în urmă

te)
1. Scrie
i programul C sau C++ care construiete în memorie o matrice ptratic cu n linii i n coloane
format numai din valori 0,1 i 2 astfel încât elementele de pe diagonala secundar i cea principal
s fie egale cu 0, elementele situate între diagonalele matricei, în partea superioar i inferioar a
acesteia, s fie egale cu 1, iar restul elementelor din matrice s fie egale cu 2. Valoarea lui n (numr
natural, 2 câte o linie a ecranului, cu spa
ii între elementele fiecrei linii (ca în exemplu).
De exemplu, pentru n=5 se construiete în memorie i se afieaz matricea:
0 1 1 1 0
2 0 1 0 2
2 2 0 2 2
2 0 1 0 2

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
1

#include <stdio.h>

#include <stdlib.h>

int mat[1000][1000];

int main()

{

   int n,i,j;

   scanf("%d", &n);

   for(i = 0; i < n; i++)

       for(j = 0; j < n; j++)

       {

           if(i == j || i + j == n - 1)

               mat[i][j] = 0;

           else if(i < j && i + j < n-1)

               mat[i][j] = 1;

           else if(i > j && i + j > n-1)

               mat[i][j] = 1;

           else mat[i][j] = 2;

       }

   for(i = 0; i < n; i++)

   {

       for(j = 0; j < n; j++)

           printf("%d ", mat[i][j]);

       printf("\n");

   }

   return 0;

}


CosminAndrei22: partea asta nu e buna :else if(i < j && i + j < n-1)

mat[i][j] = 1;

else if(i > j && i + j > n-1)

mat[i][j] = 1;
imi da valoarea 1 la multe valori la care nu ar trb cum ar fi cele de pe diagonale..
Alte întrebări interesante