Va rog!! E problema 210 de pe pbinfo.
Se consideră tabloul bidimensional cu n linii şi n coloane ce conţine numere naturale cu cel mult patru cifre fiecare.
Cerinţa
Scrieţi un program care citeşte numărul natural n şi cele n*n elemente ale tabloului şi apoi afişează elementele chenarului exterior al tabloului, separate prin câte un spaţiu. Chenarul este parcurs în sensul acelor de ceasornic începând din colţul său stânga-sus. Chenarul este format din prima şi ultima linie, prima şi ultima coloană a tabloului.
Date de intrare
Fişierul de intrare chenar.in conţine pe prima linie numărul n, iar pe următoarele n linii câte n numere naturale separate prin spaţii, reprezentând elementele tabloului.
Date de ieşire
Fişierul de ieşire chenar.out va conţine pe prima linie elementele cerute, separate prin câte un spaţiu.
Restricţii şi precizări
2≤n≤23
elementele tabloului sunt mai mici decât 1000
Exemplu
chenar.in
5
1 2 3 4 5
6 7 8 9 1
2 3 4 5 6
7 8 9 1 2
3 4 5 6 7
chenar.out
1 2 3 4 5 1 6 2 7 6 5 4 3 7 2 6
Răspunsuri la întrebare
Răspuns de
5
#include <fstream>
using namespace std;
int a[23][23];
int main() {
ifstream cin ("chenar.in");
ofstream cout("chenar.out");
int n, aij;
cin >> n ;
for (int i = 0; i < n ; i++){
cin >> aij;
cout << aij << " ";
}
for(int i = 1; i < n; i++)
for (int j = 1; j <= n; j++){
cin >> a[i][j];
if(j == n)
cout << a[i][j]<< " ";
}
for (int i = n - 1; i > 1 ; i--)
cout << a[n - 1][i] << " ";
for(int i = n - 1; i >= 1; i--)
for (int j = n - 1; j >= 1; j--){
if(j == 1)
cout << a[i][j]<< " ";
}
return 0;
}
Daca stii vectori de directie, iti prezint si aceasta varianta
using namespace std;
int a[23][23];
int main() {
ifstream cin ("chenar.in");
ofstream cout("chenar.out");
int n, aij;
cin >> n ;
for (int i = 0; i < n ; i++){
cin >> aij;
cout << aij << " ";
}
for(int i = 1; i < n; i++)
for (int j = 1; j <= n; j++){
cin >> a[i][j];
if(j == n)
cout << a[i][j]<< " ";
}
for (int i = n - 1; i > 1 ; i--)
cout << a[n - 1][i] << " ";
for(int i = n - 1; i >= 1; i--)
for (int j = n - 1; j >= 1; j--){
if(j == 1)
cout << a[i][j]<< " ";
}
return 0;
}
Daca stii vectori de directie, iti prezint si aceasta varianta
Alte întrebări interesante
Ed. tehnologică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă