博客园第二次作业

1  目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。(5分)

目前感觉最薄弱的就是指针,从一开始学就没怎么搞懂为什么要用指针,指针有什么用,然后越学越懵,感觉做题用指针就很变扭,不习惯为什么要这样做,然后最近就一直看书,勉强能搞懂一点,但如果脱离课本,可能又会搞不清什么时候用指正,怎么样是值怎么样是地址。

2.2  从第五章函数到第七章数组的函数题和编程题(主要是在PTA)中选出至少一道你觉得比较有挑战的题(已解决且不是奇奇的题)。写出解题报告包括:(1)题目大意;(2)解题思路;(3)代码思路,比如画出流程图;(4)核心技术总结;(5)解题过程中存在的问题,以及如何得到解决的。(5分)

(1)

7-4 杨辉三角 (10 分)

求杨辉三角的前n行数据。

(2)通过杨辉三角形的特性,下面一个数是上面两个数相加来编写程序。
(3)

#include <iostream>
using namespace std;
int main()
{
int n,a[100][100],i,j;
scanf("%d",&n);
for (i=1;i<=n;i++) {a[i][1]=1;a[i][i]=1;}
for (i=3;i<=n;i++)
for (j=2;j<i;j++) a[i][j]=a[i-1][j]+a[i-1][j-1];
for (i=1;i<=n;i++)
{
for (j=1;j<=i;j++)
cout<<" "<<a[i][j];
printf("\n");
}
return 0;
}

思路:首先将每一行第一个和最后一个的1输入,这是每一行都一样的,再通过两个for语句来输入剩余的数字。
(4)核心技术总结:这题的核心就在于第三第四个for的使用,一定要弄清楚杨辉三角形的规律,才能知道让i=3,j=2,再通过两个for来输入
(5)这一题我一开始没做出来就是想不到如何输入中间的对称数,后来我请教了做出来的人,然后发现两个for语句可以很简单的就输入,关键还是要搞懂这题的特性,然后接下来就是把这个规律转化成代码

 

posted on 2018-12-07 00:37  码农玩鞋  阅读(101)  评论(0编辑  收藏  举报

导航