Scrieţi un program care citeşte de la tastatură un număr natural n (3≤n≤50) şi elementele unui tablou bidimensional cu n linii şi n coloane, numere naturale cu cel mult patru cifre, apoi modifică tabloul în memorie, eliminând elementele aflate pe diagonala principală, ca în exemplu. Programul trebuie să afişeze pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.
Exemplu: pentru n=4 şi tabloul
7 5 3 4
8 1 5 6
4 6 3 5
0 9 9 6
programul trebuie să afişeze pe ecran tabloul de mai jos:
5 3 4
8 5 6
4 6 5
0 9 9
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
short n, i,j;
cout << "n= "; cin >> n;
short m[50][50];
cout << "introdu " << n << " linii cu " << n << " numere separate prin spatiu \n ";
for (i=0; i<n; ++i)
{
for (j=0; j<n; ++j)
cin >> m[i][j];
}
for (i=0; i<n-1; ++i)
{
for (j=i; j<n-1; ++j)
m[i][j]=m[i][j+1];
}
short col=n-1;
cout << "Matricea rezultat:" << endl;
for (i=0; i<n; ++i)
{
for (j=0; j<col; ++j)
cout << m[i][j] << " ";
cout << "\n";
}
return 0;
}
Explicație:
1. începând de la elementul de e diagonala principală, pe fiecare linie facem deplasare spre stânga
2. definim o variabila pt. nr. de coloane care va fi cu 1 mai mic ca numărul de linii,
3. Afişem tabloul modificat