杨辉三角算法改进

/*
* date:2011-2-15
* create by  zhoulq
*/
#include <stdio.h>
#include <string.h>
//杨辉三角
void ptr(int n)
{
 int **arc;//申明一个指向指针的指针(相当于一个不规则的二位数组)
 int i,j;
 arc=(int**)malloc(sizeof(int)*n);//开辟n行
 for(i=0;i<n;i++)
 {
  *arc=(int*)malloc(sizeof(int)*(i+1));//在第i行上开辟i+1列
  //列赋值
  for(j=0;j<i+1;j++)
  {
   if(j==0||j==i)
   {
    *(*arc+j)=1;
   }
   else
   {
    *(*arc+j)=*(*(arc-1)+j-1)+*(*(arc-1)+j);//*(arc-1) 表示的是上一行的行地址变换为该行(上一行)的首列地址
   }
   printf(" %d",*(*arc+j));
  }
  printf("\n");
  arc++;//行变换
 }
}

void main()
{
 ptr(8);
}

原文地址:https://www.cnblogs.com/kingge/p/1956126.html