Предположим, у нас есть случайный массив 5 × 5
1 2 3 7 8
4 7 3 6
5
2 9 8
4 2
2 9
5 4 7
3
7 1 9 8
Теперь я хочу напечатать правую часть диагонали, показанной выше, вместе с элементами в диагонали, например
----------8
-------- 6 5
------ 8 4 2
--- 9 5 4 7
3 7 1 9 8
код, который я написал:
#include <iostream>
#include <time.h>
using namespace std;
int main(){
int rows, columns;
cout << "Enter rows: ";
cin >> rows;
cout << "Enter colums: ";
cin >> columns;
int **array = new int *[rows]; // generating a random array
for(int i = 0; i < rows; i++)
array[i] = new int[columns];
srand((unsigned int)time(NULL)); // random values to array
for(int i = 0; i < rows; i++){ // loop for generating a random array
for(int j = 0; j < columns; j++){
array[i][j] = rand() % 10; // range of randoms
cout << array[i][j] << " ";
}
cout << "\n";
}
cout << "For finding Max: " << endl;
for(int i = 0; i < rows; i++){//loop for the elements on the left of
for(int j = columns; j > i; j--){//diagonal including the diagonal
cout << array[i][j] << " ";
}
cout << "\n";
}
cout << "For finding Min: " << endl;
for(int i = rows; i >= 0; i++){ //loop for the lower side of
for(int j = 0; j < i - columns; j++){ //the diagonal
cout << array[i][j] << " ";
}
cout << "\n";
}
return 0;
}
После запуска кода форма, которую я получаю, является правильной, но элементы не соответствуют основному массиву.Понятия не имею, в чем проблема.