第二阶段:利用C语言打印杨辉三角(C语言基础)

第一个阶段顺利结束。随着天气逐渐变热,我们来到了第二个阶段,那就是C基础。

由于我之前有一定的C语言基础,所以前期学起来没有吃力的感觉。但随着知识体系的深入,我也开始感到费劲。特别是到达数组排序知识点的时候,基本上每经过每天高强度的填鸭式教学,头痛的非常严重。

即便如此,我还是克服种种困难,以优异的成绩进入C高级的阶段。

下面我就说说我这个阶段遇到的最棘手的问题---------用for循环和数组打印杨辉三角。

这是在第五天的时候老师留的课后作业。当时我压根不知道如何下手。只知道填写头文件以及杨辉三角是什么。

 杨辉三角

后来,我想到杨辉三角是数字,且有规律可循,所以就思考,是否可以从数组和for函数出发,找到切入点。根据这个思路,将基础框架搭好。

#include <stdio.h>
#define M 10 //定义杨辉三角的行数

int main()
{
    int i,j=0;
    //定义一个字符串
    int arr[M][M]={1};
    for(i=1;i<m;i++)
    {
        for(j=1;j<=i;j++)//给i,j赋初值,限制i,j的范围
        {

        }
    }
    //打印杨辉三角
    for(i=0;i<m;i++)
    {
        for(j=0;j<=i;j++)
        {
        
        }printf("\n");
    }
    return 0;
}

接下来便是输入输出以及打印的详细代码,通过查阅课本,上网查询资料,逐渐摸索出来门道。

​
#include <stdio.h>
#define M 10 //定义杨辉三角的行数

int main()
{
    int i,j=0;
    //定义一个字符串
    int arr[M][M]={1};
    for(i=1;i<m;i++)
    {
        arr[i][0]=1;//第一行全赋值成1
        for(j=1;j<=i;j++)//给i,j赋初值,限制i,j的范围
        {
          arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
          //下一行非第一位为上一行位与上一行前一位之和
        }
    }
    //打印杨辉三角
    for(i=0;i<m;i++)
    {
        for(j=0;j<=i;j++)
        {
            printf("%5d",arr[i][j]);
        }printf("\n");
    }
    return 0;
}

​

运行出来的结果如下:

 总结:

杨辉三角不是一个简单的知识点。它用到了数组的循环,相加,相减,还有宏定义。对于初学者来说相当具有挑战性。这一周的心得就分享到这里,后面会每个阶段都更新,愿取得更大的进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值