------------------------------------------------------------------------------------------------------
打印出杨辉三角,可以根据它其中的一条性质来作为思想的入口:第i行的第j个数等于第i-1行的第j-1位加上第j位数,即a[i][j]=a[i-1][j-1]+a[i-1][j]。
------------------------------------------------------------------------------------------------------
C语言代码如下:
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int main()
{
int arr[10][10]=`1`;
int line, row,space;
for (line = 0; line < 10; line++)
{
for (row = 0; row <=line; row++)
{
if (line < 2) //前两行为1
{
arr[line][row] = arr[0][0];
}
else if (row == 0 || row == line) //首尾元素为1
{
arr[line][row] = arr[0][0];
}
else //利用性质赋值
{
arr[line][row] = (arr[line - 1][row - 1] + arr[line - 1][row]);
}
}
}
for (line = 0; line < 10; line++) //输出
{
for (row = 0; row <= line; row++)
{
printf("%3d ", arr[line][row]);
}
printf("\n");
}
system("pause");
return 0;
}
----------------------------------------------------------------------------------------
干货小知识: 1.有符号值的右移位操作是不可移植的。
2.移位操作的值不能为负值。
3.表达式的求值顺序 一部分是由它所包含的操作符的优先级和结合性决定,(优先级
大于结合性);同样,有些表达式的操作数在求值过程中可能需要转换为其他类型,
(“隐式类型转换”和“算术转换”)。
----------------------------------------------------------------------------------------
转载于:https://blog.51cto.com/814193594/1702895