// example-8.4.1p.cpp : 定义控制台应用程序的入口点。
//
“给一个正整数N,生成 N*N 的矩阵”这题意要求的是动态生成的。
其实算法很简单。你可以把N*N的矩阵看成是个迷宫,x,y表示你走到的坐标,向右走就是由x,y走到x,y+1
向下走就是由x,y 走到x+1,y 同理向上走和向左走。
比如3阶矩阵,走的全路程为a[0][0]->a[0][1]->a[0][2]->到边了转向下->a[1][2]->a[2][2]->到边
了转向左->a[2][1]->a[2][0]->到边了转向上->a[1][0]->下一个a[0][0]已经走过了转向右->a[1][1]->全走完了。
每走一步赋一个值而已。
至于是不想要动态数组,那可以定一个足够大的二维数组,比如int a[20][20];
把我程序前面的分配空间的部分删了,就行了。
#ifdef
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
int main()
{
int **a,i,j,x,y,n;
printf("input the N:");
scanf("%d",&n);
//
“给一个正整数N,生成 N*N 的矩阵”这题意要求的是动态生成的。
其实算法很简单。你可以把N*N的矩阵看成是个迷宫,x,y表示你走到的坐标,向右走就是由x,y走到x,y+1
向下走就是由x,y 走到x+1,y 同理向上走和向左走。
比如3阶矩阵,走的全路程为a[0][0]->a[0][1]->a[0][2]->到边了转向下->a[1][2]->a[2][2]->到边
了转向左->a[2][1]->a[2][0]->到边了转向上->a[1][0]->下一个a[0][0]已经走过了转向右->a[1][1]->全走完了。
每走一步赋一个值而已。
至于是不想要动态数组,那可以定一个足够大的二维数组,比如int a[20][20];
把我程序前面的分配空间的部分删了,就行了。
#ifdef
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
int main()
{
int **a,i,j,x,y,n;
printf("input the N:");
scanf("%d",&n);