小Caabbage 2022-10-22 00:33 采纳率: 95.2%
浏览 30
已结题

杨辉三角形,要求是输出n+1行

今天做题遇到了个杨辉三角形,奈何数学基础不好,在百度补习了一下,可是最后发现为什么输出之后漆黑一片没有反应啊。运行结果在最后


#include<stdio.h>
int fac(int num);//阶乘函数-n!
int main()
{        
    int n,i,j,k,l;
    int a,b,c,d;
    scanf("%d",n);
    for(i=0;i<=n;i++)//控制行 
    {                    
            for(k=0;k<2*n-2*i;k++)//输出前置空格             
                printf(" ");
            for(j=0;j<=n;j++)//输出数字 
            {
                a=fac(n);b=fac(j);
                d=n-j;     c=fac(d);
                l=a/b*c;
                printf("   %d",l);
            }    
            printf("\n");                    
    }
    return 0;    
}
int fac(int num)//阶乘函数-n!
{
    int mid1,mid2,mid3; 
    mid2=mid3=num;
    for(mid1=0;mid1<num-1;mid1++)//控制计算次数 
    {    
        mid2=mid2*(mid3-1);
        mid3--;
    }
    return mid2;
}

img

  • 写回答

1条回答 默认 最新

  • .LAL. C/C++领域新星创作者 2022-10-22 08:42
    关注
    
    #include <stdio.h>
    //杨辉三角
    int main()
    {
        int n;
        printf("请输入要打印的行数:");
        scanf("%d",&n);
        int a[100][100];
        for(int i=0;i<n;i++)
        {
            a[i][0]=1;
            a[i][i]=1;    //先将杨辉三角每行的第一个和最后一个赋值为1 
        }
        
        for(int i=2;i<n;i++)      //已知每个数等于它上方两数的之和 
        {
            for(int j=1;j<i;j++)
            {
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            }
        }
        
        
        for(int i=0;i<n;i++)     //打印输出 
        {
            for(int j=0;j<=i;j++)
            {
                printf("%d ",a[i][j]);
            }
            printf("\n");
        }
    } 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月22日