189 8069 5689

用C语言打印杨辉三角-创新互联

杨辉三角:想要打印杨辉三角,首先创建一个数组arr[10][10];

成都地区优秀IDC服务器托管提供商(创新互联建站).为客户提供专业的联通机房服务器托管,四川各地服务器托管,联通机房服务器托管、多线服务器托管.托管咨询专线:13518219792

杨辉三角放到左边对齐就应该是这样的

我们可以知道第0列应该全是1;当行和列相等的时候应该也是1所有就有

arr[i][0] = 1;

if (i==j)
         {
             arr[i][j] = 1;
         }

并且我们只需要这个数组得下半部分上面的不要所以就有 行大于列也就是

void print(int arr[][10])
{
 for (int i = 0; i< 10; i++)
 {
     for (int j = 0; j< 10; j++)
     {
         if (i >= j)
         {
             
             printf("%d ", arr[i][j]);
         }
     }
     printf("\n");
 }
}

最后写出 打印数组下半部分代码 , 这个代码使这个数组得第一列为1 ,行列相等的时候也为1 

void print(int arr[][10])
{
	for (int i = 0; i< 10; i++)
	{
		for (int j = 0; j< 10; j++)
		{
			if (i >= j)
			{
				
				printf("%d ", arr[i][j]);
			}
		}
		printf("\n");
	}
}
int main()
{
	int arr[10][10] = { 0 };
	for (int i = 0; i< 10; i++)
	{
		int j = 0;
		arr[i][0] = 1;
		for (j = 0; j< 10; j++)
		{
			if (i==j)
			{
				arr[i][j] = 1;
			}
			
		}
	}
	print(arr);
}

通过观察 我们知道从第2行开始有 arr[i][j] = arr[i-1][j] + arr[i-1][j-1];

最后得代码是

# includevoid print(int arr[][10])
{
	for (int i = 0; i< 10; i++)
	{
		for (int j = 0; j< 10; j++)
		{
			if (i >= j)
			{
				
				printf("%d ", arr[i][j]);
			}
		}
		printf("\n");
	}
}
int main()
{
	int arr[10][10] = { 0 };
	for (int i = 0; i< 10; i++)
	{
		int j = 0;
		arr[i][0] = 1;
		for (j = 0; j< 10; j++)
		{
			if (i==j)
			{
				arr[i][j] = 1;
			}
			if (i >=2 && j >0 && j<= i)
			{
				arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
			}
		}
	}
	print(arr);
}

打印出来就是这个样子

这个代码还是有些地方做的不好 比如书代码没有对齐等问题;

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:用C语言打印杨辉三角-创新互联
本文来源:http://jkwzsj.com/article/dpiihh.html

其他资讯