C语言用一维数组和二维数组打印杨辉三角

xcxvbf 2014-05-27

C语言用一维数组和二维数组打印杨辉三角,有图真相,先看Linux下的运行结果:

C语言用一维数组和二维数组打印杨辉三角

#include<stdio.h> /*用一维数组和二维数组打印杨辉三角*/
#define N 100
#define M 10

void one_dim_array(int *a,int num) //用一维数组打印
{
 int i,j,k;
 printf("%5d\n",a[0]); //先打印出第一行数据
  for(i=2;i<=num;i++)
  {
   for(j=i-1;j>0;j--)
    a[j]=a[j]+a[j-1]; //每次从右向左计算每行的数据

   for(k=0;k<i;k++) //打印每行的数据
    printf("%5d",a[k]);
   printf("\n");
  }
}


int main()
{
 int arr[N]={1,0}; //此处定义一个一维数组,首项为1,其他项为0
 int a[M][M];
 int n;
 int i,j;
 printf("Input the lines: ");
 scanf("%d",&n);
 printf("using one_dim_array:\n");
 one_dim_array(arr,n);

 printf("using double_dim_array:\n");
 for(i=0;i<M;i++)
     {
     a[i][0]=1;
      a[i][i]=1;
     }

 for(i=2;i<M;i++)
  for(j=1;j<i;j++)
  a[i][j]=a[i-1][j-1]+a[i-1][j];
 for(i=0;i<M;i++)
 {
  for(j=0;j<=i;j++)
  printf("%5d",a[i][j]);
  printf("\n");
 }
 return 0;
}

将C语言梳理一下,分布在以下10个章节中:

  1. Linux-C成长之路(一):Linux下C编程概要 http://www.linuxidc.com/Linux/2014-05/101242.htm
  2. Linux-C成长之路(二):基本数据类型 http://www.linuxidc.com/Linux/2014-05/101242p2.htm
  3. Linux-C成长之路(三):基本IO函数操作 http://www.linuxidc.com/Linux/2014-05/101242p3.htm
  4. Linux-C成长之路(四):运算符 http://www.linuxidc.com/Linux/2014-05/101242p4.htm
  5. Linux-C成长之路(五):控制流 http://www.linuxidc.com/Linux/2014-05/101242p5.htm
  6. Linux-C成长之路(六):函数要义 http://www.linuxidc.com/Linux/2014-05/101242p6.htm
  7. Linux-C成长之路(七):数组与指针 http://www.linuxidc.com/Linux/2014-05/101242p7.htm
  8. Linux-C成长之路(八):存储类,动态内存 http://www.linuxidc.com/Linux/2014-05/101242p8.htm
  9. Linux-C成长之路(九):复合数据类型 http://www.linuxidc.com/Linux/2014-05/101242p9.htm
  10. Linux-C成长之路(十):其他高级议题

相关推荐