zigzag数组

来源:互联网 发布:诛仙手游pc版软件 编辑:程序博客网 时间:2024/04/30 22:24
#include<stdio.h>#include<iostream>using namespace std;void getzigzag(int N){    int s,i,j,squa;    //分配内存    int **a = (int**)malloc(N*sizeof(int));    if(a==NULL)        return;    for(i = 0;i<N;i++)    {        if((a[i] = (int *) malloc(N*sizeof(int))) == NULL)        {            while(--i>0)                free(a[i]);            free (a);            return;        }    }    //赋值    squa = N*N;    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)?i:j);            else            {                s = (N-1-i) + (N-1-j);                a[i][j] = squa - (s*(s+1)/2 + (N-(((i+j)%2)?i:j)));            }        }    }    //打印输出    cout<<endl;    cout<<endl;    for(i = 0;i<N;i++)    { for(j = 0;j<N;j++)    {        cout<<a[i][j]<<"\t";    }    cout<<endl;    }int main(){    int N;    scanf("%d",&N);    getzigzag(N);    return 0;}
0 0
原创粉丝点击