c语言蛇形矩阵题..

c语言蛇形矩阵题..

问题描述:

描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

格式
输入格式
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)

输出格式
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。

样例
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

#include<stdio.h>
int main()
{
    int i,j,n,k,a=1,b=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        b=a;
        a=a+i;
        k=i+1;
        for(j=i;j<=n;j++)
        {
            if(j==n){
                printf("%d",b);
            }else{
                printf("%d ",b);
            }
            b+=k;
            k++;
        }
        if(i<n){
            printf("\n");
        }
    }
    return 0;
}

#include <stdio.h>
int main()
{
    int a[100][100]={0};
      int n,i=0,j=0,r=1;
      scanf("%d",&n);
      for(int k=1;k<=n*(n+1)/2;k++)
      {
          a[i][j] = k;
          i--;
          j++;
          if(i<0)
          {
              i=r++;
              j=0;
          }
      }
      for(i=0;i<n;i++)
      {
          for(j=0;j<n;j++)
              if(a[i][j] != 0)
              {
                  printf("%d ",a[i][j]);
              }
              printf("\n");
      }
    return 0;
}

int main () {
    int a[100][100];
    int n;
    scanf("%d", n);
    int num = 1;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j <= i; j++) {
            a[i-j][j] = num++;
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n - i; j++) {
              printf("%d", a[i][j]);
              if (j != n - i - 1) {
                    printf(" ");
              }
              else {
                    printf("\n");
              }
        }
    }
        
}