C语言程序设计 编程输出以下的倒直角三角形

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

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int **a;
    int i,j,n,k;
    scanf("%d",&n);
    a=(int**)malloc(sizeof(int*) * n);
    for(i = 0; i < n; i ++)
        a[i] = (int *)malloc(sizeof(int)*n);
    k=1;
    for(i = 0; i < n; i ++)
    {
        for(j = 0; j<=i; j ++)
        {
            a[i-j][j]=k++;
        }
    }
    for(i = 0; i < n; i ++)
    {
        for(j = 0; j<n-i; j ++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
    return 0;
            
}追问

int **a;请问这是指针还是?
a=(int**)malloc(sizeof(int*) * n);
for(i = 0; i < n; i ++)
a[i] = (int *)malloc(sizeof(int)*n);
k=1;这些是什么意思啊?请问能给个注解吗?我看不懂。多谢了。

追答

二维动态指针。 

如果看不懂 或者没学过 可以改成

#include <stdio.h>
int a[100][100];
int main()
{
    int i,j,n,k;
    scanf("%d",&n);
    k=1;
    for(i = 0; i < n; i ++)
    {
        for(j = 0; j<=i; j ++)
        {
            a[i-j][j]=k++;
        }
    }
    for(i = 0; i < n; i ++)
    {
        for(j = 0; j<n-i; j ++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
    return 0;
             
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-08
#include <stdio.h>
int main(void){
    int i,j,k,ii,jj;
    for(k=2,ii=1,i=0;i<5;ii+=++i,k++){
        for(jj=ii,j=0;j<5-i;jj+=k+j++)
            printf("%3d",jj);
        printf("\n");
    }
    return 0;
}

相似回答