XunXLLL
2021-10-27 11:34
采纳率: 80%
浏览 22

C语言关于杨辉三角的一个问题

#include <stdio.h>
void main()
{
    int i,j;
    int num[10][10];
    num[0][0]=1;
    num[1][0]=1;
    num[1][1]=1;
    for(i=0;i<10;i++)
    {
     for(j=0;j<i;j++)
    {
    if(i==0||i==1)
    {
    printf("%d ",num[i][j]);
    }
    else if(j==0&&j==i)
    {
        num[i][j]=1;
    }
    else if((i!=0&&i!=1)&&(j!=0&&j!=i))
    {
     if(j==1)
    {
        num[i][j]=num[i-1][0]+num[i-1][1];
    }
    else if(j==i-1&&j!=0)
    {
    num[i][j]=num[i-1][i-1]+num[i-1][i-2];
    }
    else
    {
    num[i][j]=num[i-1][j-1]*num[i-1][j];
    }
    printf("%d ",num[i][j]);
    }
    }
    printf("\n");
    }
    getchar();
}

运行出来就是这样

img

想问一下这里是赋值有问题吗

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 小蚂蚁t 2021-10-27 11:47
    已采纳

    getchar();?为什么还要输入字符
    int num[10][10]={0};先试一下
    23-26行好像没必要
    你的代码逻辑有点乱
    第一行输出个1,第二行输出个1,就是num[i][0]=1
    其他的都是num [ i ][ j ] =num [ i - 1 ] [ j - 1 ] + num [ i - 1 ] [ j ];
    因为赋了初值为0,后面的1也是可以这样输出的

    img

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题