数组的使用——杨辉三角的Java实现与C语言实现对比

来源:互联网 发布:淘宝店铺首页全屏轮播 编辑:程序博客网 时间:2024/06/06 02:11

通过杨辉三角的Java实现与C语言实现的对比,体会两种语言数组实现与使用的差别。由于在数组在Java中是类(也就是引用类型),相比C语言的数组发生了较多的变化,主要体现在初始化方式以及长度限制两方面,具体见下面两种代码实现

public class YangHui {    public static void main(String[] args) {        int line = 10;        int a[][] = new int[line][];        for(int i=0;i<line;i++){            //使用之前,每一行需要初始化,并且每一行的长度都可以不同,这是与C语言的不同之处            a[i] = new int[i+1];            //打印前两行            if(i==0){                a[0][0]=1;                System.out.println(a[0][0]);            }else if(i==1){                     a[1][0]=1;                a[1][1]=1;                System.out.println(a[1][0]+"\t"+a[1][1]);             //第三行开始            }else if(i>=2){                             //先打印左边的1                a[i][0]=1;                a[i][i]=1;                System.out.print("1\t");                //中间序列的计算                for(int j=1;j<i;j++){                    a[i][j]=a[i-1][j-1]+a[i-1][j];  //此处为最核心的地方                    System.out.print(a[i][j]+"\t");                }                //最后打印每行右边的1                System.out.println("1\t");              }                   }       }}

以下是C语言实现,包括六种解法,个人推荐第三种,代码粘贴在下面,来自博客————用C语言打印出杨辉三角wanghe334新浪博客 http://blog.sina.com.cn/s/blog_520db5ec01009c1c.html

#include  int main(){ int i,j,n=0,a[17][17]={0,1};   while(n<1 || n>16)   { printf("请输入杨辉三角形的行数:");     scanf("%d",&n);   }   for(i=1;i<=n;i++)   for(j=1;j<=i;j++)     a[i][j]=a[i-1][j-1]+a[i-1][j];     for(i=1;i<=n;i++)             { for(j=1;j<=i;j++) printf("%5d",a[i][j]);      printf("\n");   }   return 0;}
1 0