二维数组的应用-杨辉三角模型
1.熟练运用数组
2.理解杨辉三角模型
需要解决的问题
- [ ] 默认数组为0改为不输出
#include<stdio.h>
int main()
{
int a[11][11]={1};
int i,j,sum;
//赋值首尾都为一
for(i=0;i<=10;i++)
{
for(j=0;j<=10;j++)
{
a[i][0]={1};
a[i][i]={1};
}
}
for(i=2;i<=10;i++)//从第二行开始计算
{
for(j=1;j<=10;j++)//从第二列开始计算
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
//打印所有数组
for(i=0;i<=10;i++)
{
for(j=0;j<=10;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
}
AI改进的问题
您的代码目的是生成一个杨辉三角,但存在一些问题。特别是:
- 在初始化时,
a[i][0]={1}
; 和a[i][i]={1}
; 语法错误,应该使用a[i][0] = 1
; 和a[i][i] = 1
;。- 在杨辉三角的生成过程中,
a[i][i] = 1
; 会越界,因此应当在循环中仅给首尾位置赋值1
,而不是赋值给a[i][i]
。- 在计算杨辉三角的值时,索引从
1
开始,第二行和第二列的赋值会有问题,应该调整为合适的索引。
#include<stdio.h>
int main() {
int a[11][11] = {0}; // 初始化数组,默认值为0
int i, j;
// 赋值首尾为1
for(i = 0; i <= 10; i++) {
a[i][0] = 1; // 第一列设为1
a[i][i] = 1; // 对角线设为1
}
// 计算杨辉三角的值
for(i = 2; i <= 10; i++) { // 从第二行开始计算
for(j = 1; j < i; j++) { // 第二列到第i列之间的元素
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 打印杨辉三角
for(i = 0; i <= 10; i++) {
for(j = 0; j <= i; j++) { // 只打印有效元素
printf("%5d", a[i][j]);
}
printf("\n");
}
return 0;
}
评论 (0)