1. 程式人生 > >矩陣的“回”形列印

矩陣的“回”形列印

#include <iostream>
using namespace std;

void square_print(int **a, int x_temp1, int y_temp1, int x_temp2, int y_temp2)
{
    if(x_temp1 == x_temp2)
    {
        for(int i = y_temp1; i <= y_temp2; i++)
            cout << a[x_temp1][i] << ' ';
        return ;
    }
    if(y_temp1 ==
y_temp2) { for(int i = x_temp1; i <= x_temp2; i++) cout << a[i][y_temp1] << ' '; return ; } //????? for(int i = y_temp1; i < y_temp2; i++) cout << a[x_temp1][i] << ' '; for(int i = x_temp1; i < x_temp2; i++) cout <<
a[i][y_temp2] << ' '; for(int i = y_temp2; i > y_temp1; i--) cout << a[x_temp2][i] << ' '; for(int i = x_temp2; i > x_temp1; i--) cout << a[i][y_temp1] << ' '; } int main() { cout << "please input rows and columns: "; int rows,
columns; cin >> rows >> columns; int **nums = new int *[rows]; for(int i = 0; i < rows; i++) nums[i] = new int [columns]; cout << "please input the data: "; for(int i = 0; i < rows; i++) { for(int ii = 0; ii < columns; ii++) { cin >> nums[i][ii]; } } cout << "the row data is: " << endl; for(int i = 0; i < rows; i++) { for(int ii = 0; ii < columns; ii++) { cout << nums[i][ii] << ' '; } cout << endl; } cout << "the output data is: " << endl; int x_temp1 = 0, y_temp1 = 0, x_temp2 = rows - 1, y_temp2 = columns - 1; while(x_temp1 <= x_temp2 && y_temp1 <= y_temp2) { square_print(nums, x_temp1, y_temp1, x_temp2, y_temp2); x_temp1++; y_temp1++; x_temp2--; y_temp2--; } delete [] nums; system("pause"); return 0; }