蛇形矩阵
题目描述:蛇形矩阵是从1开始的自然数依次排列成的一个矩阵上三角形
输入描述:
矩阵的大小N(N<20)
输出描述:
输出一个蛇形矩阵,注意:每行行末没有空格,最后一行没有换行。
样式输入:
5
样式输出:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
如果 n的大小不限定。。。。。。用是指针还是别的。。。。可以么。。。。。。
#include<stdio.h> void main() { int i,j=1,k,b,n=10; int m[10][10]; for(i=2;i<n;i++) { k=0; b=i; while(b>=0){ m[b--][k++]=j++; } } for(int h=0;h<10;h++){ for(int g=0;g<10;g++){ printf("%d",m[h][g]); } printf("\n"); } } //编译没有 通过。。。不知道什么原因 。。。。你的要求我只符和了一个 那就是输出的顺序
#include<stdio.h> #define M 20 void main() { int a[M][M]; int count=1; int i,j,n; int k=0; printf("Please input n(n<=M):"); scanf("%d",&n); while(count<=n*(n+1)/2) { for(i=k,j=0;i>=0,j<=k;i--,j++) { a[i][j]=count++; } k++; } for(i=0;i<n;i++) { for(j=0;j<n-i;j++) { printf("%4d",a[i][j]); } printf("\n"); } }
#include <stdio.h> int main() { int a[20] = {1}; int n; int i, j; scanf("%d", &n); for (i = 0;i < n;++i) if (!i) printf("%-3d", a[i]); else printf("%-3d", a[i] = a[i-1]+i+1); printf("\n"); for (i = 1;i < n;++i) { for (j = 0;j < n-i;++j) printf("%-3d", a[j] = a[j+1]-1); printf("\n"); } return 0; }