数组的运用-杨辉三角模型
侧边栏壁纸
  • 累计撰写 11 篇文章
  • 累计收到 0 条评论

数组的运用-杨辉三角模型

admin
2024-12-21 / 0 评论 / 4 阅读 / 正在检测是否收录...

二维数组的应用-杨辉三角模型

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

评论 (0)

取消