版权声明:小白见解,谁看得上 https://blog.csdn.net/weixin_43368425/article/details/83216671
身为一名程序小白来说,在刚学习完一个知识点的时候,最好的巩固方法莫过于解决一道关于该知识点的题目了(不才自认为)。因此,在初步接触了二维数组之后,很幸运地遇到了这道虽不算太难但是又很有趣的题目,因为杨辉三角应该足以说是很经典的数学案例了吧。
言归正传,关于解决问题的代码思路,已经比较详细地记录在了代码当中。
而且经过实践证明呢,它在提交之后获得的结果也是Acceped,所以说代码的正确性应该是没有问题的。
另外,每次写完代码之后都习惯性地将所写的代码格式尽量规范化,增强其可读性。
代码如下:
#include<stdio.h>
int main()
{
int a[30][30] = {0};
//设置一个空二维数组
int i, j, n;
//n即为输入的个数,其余两个变量用来控制循环
while(scanf("%d", &n)!=EOF)
//基本控制输入格式
{
for(i = 0; i < n; i++)//控制行数
{
for(j = 0; j <= i; j++)
//对于每行的具体输出进行安排
{
if(j == 0 || j == i)
a[i][j] = 1;
//每行的第一位和最后一位数字均为1
else
a[i][j] = a[i-1][j-1] + a[i-1][j];
//参考杨辉三角的标准样例可以得到此规律
//下一行除去两头的数总是等于它正上方的数加上它左上方的数
}
}
for(i = 0; i < n; i++)//此循环则是为了控制输出
{
for(j = 0; j <= i; j++)
{
if(j == i)
printf("%d\n",a[i][j]);
//很容易看明白,当i和j相等时,即代表完成了一行输出
else
printf("%d ",a[i][j]);
}
}
printf("\n");//题目的格式要求
}
return 0;
}
OVER