用c++实现一个n*n矩阵,矩阵沿着45度递增,形成zigzag数组

#include<stdio.h>#include<iostream>using namespace std;int main(){int N;int s, i, j;int squa;cin>>N;squa = N*N;/*为指向int型指针的指针分配空间,该指针指向n个int型指针*/int **a = (int **)malloc(N* sizeof(int));if (a == NULL)return 0;for (i = 0; i < N; i++){if ((a[i] = (int *)malloc(N*sizeof(int))) == NULL){/*对于前面的指针的每个值(int指针)赋值,使其指向一个int数组,,如果分配失败,则释放放在它之前申请成功的空间*/while (–i >= 0){free(a[i]);free(a);return 0;}}}for (i = 0; i < N; i++){for (j = 0; j < N; j++){s = i + j;if (s < N)a[i][j] = s*(s + 1) / 2 + (((i + j) % 2 == 0) ? i : j);else{s = (N – 1 – i) + (N – 1 – j);a[i][j] = squa – s*(s + 1) / 2 -(N – (((i + j) % 2 == 0) ? i : j));}}}for (i = 0; i < N; i++){for (j = 0; j < N; j++){printf("%6d", a[i][j]);}printf("\n");}system("pause");return 0;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

人生的小河,总要流过森林,荒漠,

用c++实现一个n*n矩阵,矩阵沿着45度递增,形成zigzag数组

相关文章:

你感兴趣的文章:

标签云: