C语言每日一练2:杨辉三角

今天是第三天:练习-数组-杨辉三角的查找

        大家好,我是C语言小白-Haven,昨天学习自己去码简单自制项目作为昨天晚上的作业,就是那种超缩减版的概率系统以及之前学习的知识。

        做的基本上是那种普通的抽卡系统,我做的也是基于概率以及条件选择的文字游戏,自己选题选的是动物园规则怪谈,但由于选题太大以及人手、时间、经费不足,只能做了个超超超级删减魔改版,做的太晚了,所以没有去写每日一练。

        题目:输入一个正整数n,打印前n行的杨辉三角。

                        先说一下杨辉三角:

                                                                        1

                                                                   1        1

                                                              1        2        1

                                                         1        3        3        1

                                                    1        4        6        4        1

        先分析一下,边上是固定的1,中间可以组成一个小三角,每一个值是它头顶上的两个尖角值相加,例如:

        2==1+1; 3==1+2;4==1+3;6==3+3;

思维过程:

        1.我的第一反应是既然下面的数值取决于上面的数值,那我就用两个数组a[]、b[]以行为基准,一行一行交替进行输入、输出。

        同时发现第一行有一个值,第二行有两个值,第三行有三个值.....

        最开始给a[0]赋值1,输出后第一行后给下一行的边缘两个b[0]与b[m]赋值,再按条件给中间赋值。利用上下交换装置,使下一次输出b[],给两个a[0]与a[m]赋值,按条件给中间赋值。如此循环下去。

        2.还有另一种用二维数组,直接将整个前n行全部计算出来,分为两边和中间的三角两个模块,这个可以自己去试一下。

        3.还有一种用一维数组a[n]算出来的,这个我没有具体了解,有兴趣的可以自己去写一下。

/*
	作业:打印杨辉三角
		输入一个正整数n,
		打印杨辉三角前n行;

*/

#include

int main()
{
/*********定义与输入模块********/


	int n,m,i,flag=0;
	printf("please input a data:");
	scanf("%d",&n);
	int a[n],b[n];
	a[0]=1;


	
/***********执行模块**********/


	for(m=1;m<=n;m++)
	{
		if(flag==0)
		{
			
			for(i=0;i

你可能感兴趣的:(每日练习,C语言小白,c语言)