蛇形矩陣

蛇形矩陣

題目來源牛客網
時間限制:1秒
空間限制:32768K指針

題目描述

題目說明

蛇形矩陣是有1開始的天然數依次排列成的一個上三角矩陣.code

樣例輸入: 接口

5
內存


樣例輸出:

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

接口說明

原型
字符串

void GetResult(int Num, char * pResult);

輸入參數:
get

int Num :輸入的正整數N

輸出參數:原型

int *pResult: 指向放蛇形矩陣的字符串指針指針指向的內存區域保證有效

返回值:string

void

輸入描述

輸入正整數N(N不大於100)it

輸出描述

輸出一個N行的蛇形矩陣.io

輸入例子

4

輸出例子

1 3 6 10

2 5 9

4 8

7

Answer

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void GetResult(int n, int * matrix);
void printResult(int n, int* matrix);
void zeros(int n, int* matrix);

int main(int argc, char **argv)
{

    int n;

    while(scanf("%d",&n)!=EOF){
        int *matrix = (int*)malloc(sizeof(int)*n*n);
        GetResult(n, matrix);
        printResult(n, matrix);
        free(matrix);
    }
    return 0;
}

void GetResult(int n, int * matrix)
{
    /*initialize as zero*/
    zeros(n, matrix);
    int counter = 1;
    int i,j;
    for(i=1; i <= n; i++){
        for(j=0; j<i;j++){
            *(matrix+(i-1)*n+j) = counter++;
        }
    }

}

void printResult(int n, int* matrix)
{
    int i,j;
    for(j=0; j<n; j++){
        for(i=j; i<n-1; i++){
            printf("%d ", *(matrix+i*n+i-j));
        }
        printf("%d", *(matrix+i*n+i-j));
        printf("\n");
    }
}
void zeros(int n, int *matrix)
{
    int i,j;
    for(i=0; i<n;i++){
        for(j=0; j<n;j++){
            *(matrix+i*n+j)=0;
        }
    }
}
相關文章
相關標籤/搜索