第一题:
实现N*N矩阵,
如N=2时
1 2
4 3
N=4时
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
#define N 5
int M[N][N];
void Matrix()
{
int T = (N+1)/2;
int num = 0;
for(int t=0; t<T; t++)
{
for(int i=t; i<=N-1-t; i++)
M[t][i] = ++num;
for(int i= t+1; i<=N-1-t-1; i++)
M[i][N-1-t] = ++num;
for(int i=N-1-t; i>=t; i--)
M[N-1-t][i] = ++num;
for(int i=N-1-t-1; i>=t+1; i--)
M[i][t] = ++num;
}
if(N%2 != 0)
M[N/2][N/2] = N*N;
}
void Print()
{
for(int i=0; i<=N-1; i++)
{
for(int j=0; j<=N-1; j++)
cout<<setw(5)<<M[i][j];
cout<<endl;
}
}
void _tmain()
{
Matrix();
Print();
}
评论