题目来源牛客网
时间限制:1秒
空间限制:32768K指针
蛇形矩阵是有1开始的天然数依次排列成的一个上三角矩阵.code
样例输入: 接口
5
内存
接口说明
原型
字符串
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
#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; } } }