第二次博客作业

1.目前我学习中纯在的薄弱的知识点具体是:结构体,共用体,指针,引用和链表;

   对于薄弱的知识点我是通过看书和上网查阅资料了解的;

   其中我最最薄弱的一环就是第九章的知识点,例如:(1)、用指针作为函数参数;(2)、指向数组的指针(特别是指针和字符串);(3)、指针数组;(4)、指针和函数;

   每次看书看第九章的知识点,都是怎么都看不懂,上课也听得不太懂,内心极度崩溃。

2.(1)、求杨辉三角的前n行数据。输入n(n<10)值。输出杨辉三角的前n行数据,每个数据占4列。

   (2)、解题思路:首先想的是要用一维数组还是二维数组,考虑要用什么循环语句,是否要用到函数,然后寻找杨辉三角的规律,最后尝试着去编程。

   (3)、代码思路:先把主函数打好,在确定要用一个函数来输出杨辉三角。

                #include<iostream>

                #include<iomanip>
                using namespace std;
                int fun(int n)
                {
                int a[n][n];
                int i,j;
                for(i=0;i<=n-1;i++)
                {
                for( j=0;j<=i;j++)
                {
                if(j==0||j==i) a[i][j]=1;
                else a[i][j]=a[i-1][j-1]+a[i-1][j];
                cout<<setw(4)<<a[i][j];
                }
                if(i!=n-1) cout<<endl;
                }
                }
                int main()
                {
                int n;
                cin>>n;
                fun(n);
                return 0;
                }

   (4)、核心部位就是函数里面的循环部分,因为是二维数组所以套两个for语句,最里面的for语句中的if语句是将二维数组a的某一元素的同一列的上一行的数据加上后一个数据的和赋给改元素。

                for(i=0;i<=n-1;i++)
                {
                for( j=0;j<=i;j++)
                {
                if(j==0||j==i) a[i][j]=1;
                else a[i][j]=a[i-1][j-1]+a[i-1][j];
                cout<<setw(4)<<a[i][j];
                }
                if(i!=n-1) cout<<endl;
                }

   (5)、解题时的问题就是寻找杨辉三角的规律和判断是用二维数组还是要一维数组;

                解决的方法是一维数组和二维数组都试了一遍,发现是要用二维数组的,观察最后的输出结果发现杨辉三角的输出规律。

posted @ 2018-12-08 23:00  chaukin  阅读(210)  评论(3编辑  收藏  举报