fork download
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. Declarăm si citim “n”.
  5. Declarăm matricea și vectorul în care vom stoca ultima coloana a matricei.
  6. Cu o structura repetitiva, parcurg “n” pasi:
  7. Cu o alta structura repetitiva, citim elementele matricei:
  8. Cu ajutorul unei structuri decizionale, vom verifica dacă indicele coloanei este egal cu “n”:
  9. In caz afirmativ, folosindu-ne de indicele liniilor,
  10. stocăm în vector, elementul curent.
  11.  
  12.   6. Cu un “for” care ruleaza de la “n + 1” pana la n / 2 + 1 inclusiv:
  13. Cu o structura repetitiva care ruleaza de la “1” pana la “n” inclusiv:
  14. Dacă indicele liniei este mai mare decat “n / 2 + 1”:
  15. mutam elementele liniei anterioare pe linia curentă.
  16. Altfel copiem în linia curentă elementele vectorului, folosindu-ne de indicele coloanei curente.
  17.   7. Incrementam pe “n”.
  18. */
  19.  
  20. const int MAX_SIZE = 10;
  21.  
  22. int main() {
  23. int n, mt[MAX_SIZE + 2][MAX_SIZE + 1];
  24. cin >> n;
  25. for (int i = 1; i <= n; ++i) {
  26. for (int j = 1; j <= n; ++j) {
  27. cin >> mt[i][j];
  28. }
  29. }
  30. for (int i = n + 1; i >= n / 2 + 1; --i) {
  31. for (int j = 1; j <= n; ++j) {
  32. if (i > n / 2 + 1) {
  33. mt[i][j] = mt[i - 1][j];
  34. } else if (j < n) {
  35. mt[i][j] = mt[j][n];
  36. } else {
  37. mt[i][j] = mt[j + 1][n];
  38. }
  39. }
  40. }
  41. ++n;
  42. for (int i = 1; i <= n; ++i) {
  43. for (int j = 1; j < n; ++j) {
  44. cout << mt[i][j] << " ";
  45. }
  46. cout << "\n";
  47. }
  48. return 0;
  49. }
  50. /*
  51. 11 12 13 14 15
  52. 21 22 23 24 25
  53. 31 32 33 34 35
  54. 41 42 43 44 45
  55. 51 52 53 54 55
  56. */
  57.  
Success #stdin #stdout 0.01s 5284KB
stdin
5
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55




stdout
11 12 13 14 15 
21 22 23 24 25 
15 25 35 35 55 
31 32 33 34 35 
41 42 43 44 45 
51 52 53 54 55