改进版“杨辉三角”

来源:互联网 发布:广数英制螺纹怎么编程 编辑:程序博客网 时间:2024/06/03 17:39
#include <stdio.h>
#include <stdlib.h>
#define N 12
int input ();

void draw (int [N][N],int );

void output(int [N][N],int);

int main ()
{

    int a[N][N],dim,h;
do {
    dim =input ();
    printf ("\n%d\n",dim);

    draw(a,dim);

    output(a,dim);
    printf ("\n\n输入0退出,输入其他数继续看杨辉三角\n\n");
    scanf ("%d",&h);
    }while (h!=0);
    return 0;
}
 int input ()
 {
     int b;   //b 作为阶数存入,之后再返回其值‘
     printf ("请问您想看几阶?\n");

     printf ("请输入阶数(0<=x<=11):");

    scanf ("%d",&b);                               /*有效性验证*/
    while (b<0||b>11)
    {
        printf ("输入有误,请从新输入:");
        scanf ("%d",&b);

    }

    return b;
 }
 void draw (int a[N][N],int dim)
 {

    int i,j;

    for (i=0;i<=dim;i++)
    {   /*填充两边数字*/
        a[i][0]=1;
        a[i][i]=1;
        /*计算内部数字*/
        for (j=1;j<i;j++)

        {
            a[i][j]=a[i-1][j]+a[i-1][j-1];
        }
    }

}

void output(int a[N][N],int dim)
{
    int i,j;

    printf ("下面是输出的%d阶杨辉三角:\n",dim);
    for (i=0;i<=dim;i++)
    {
        printf ("第%d阶",i);

        for (j=0;j<dim-i;j++)
        {
            printf("%2c",' ');
        }

        for (j=0;j<i;j++)
        {
            printf("%4d",a[i][j]);

        }

            printf("\n");

    }




}


原创粉丝点击