重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
杨辉三角:想要打印杨辉三角,首先创建一个数组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元起,快前往官网查看详情吧