蛇形矩阵
蛇形矩阵
题目来源牛客网
时间限制:1秒
空间限制:32768K
题目描述
题目说明
蛇形矩阵是有1开始的自然数依次排列成的一个上三角矩阵.
样例输入:
5
样例输出:1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
接口说明
原型
void GetResult(int Num, char * pResult);
输入参数:
int Num :输入的正整数N
输出参数:
int *pResult: 指向放蛇形矩阵的字符串指针指针指向的内存区域保证有效
返回值:
void
输入描述
输入正整数N(N不大于100)
输出描述
输出一个N行的蛇形矩阵.
输入例子
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;
}
}
}