动态 一维数组打印杨辉三角(正三角形格式输出)
分析:观察杨辉三角中的两行:
1 4 6 4 1
1 5 10 10 5 1
第二行的5等于上一行的4+1;
第二行的第一个10等于上一行的6+4;
第二行的第二个10等于上一行4+6…
因此用一维数组从上一行后面依次向前两两相加就得到下一行的数,第n行应该加n-1次输出,最后一列直接输出1。
这里假设不知道输出的行数,所以用了动态数组。
另外,关于正三角形打印格式的问题,经过调试(因为上一行的空格处在下一行要输出一个数,所以每个数应该占两个数的位置),总结出:输出的数占的位数是打印的空格个数的两倍,比如打印两个空格,则数用%4d输出,打印三个空格,则用%6d输出,如果行数较大,则应该多打印空格,此时数的位数也需要调整。
C语言
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n,i,j,k,*a;
scanf("%d",&