现在的位置: 首页 > 综合 > 正文

C队列 输出杨辉三角

2012年12月25日 ⁄ 综合 ⁄ 共 1803字 ⁄ 字号 评论关闭

也是中软笔试的算法题,当时并不知道叫杨辉三角,唉。N年不用了,还得再拾起,为了那个梦。

#include <stdio.h>
void main()
{
    int a[50][50];
    int i,j,n;
    printf("Please input Number:");
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        for (j=0;j<=i;j++)
        {
            if (j==0 ||j==i)
                a[i][j]=1;
            else
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            printf("%5d",a[i][j]);
        }
        printf("\n");
    }
    getch();
}

/*TC 2.0测试*/
#define size 100
#define true 1
   #define false 0
    typedef int elemtype;
    typedef struct queue
     {
       elemtype element[size];
      int front;
       int rear;}queue;/*jie gou ti*/

    void initqueue(queue*q)
    {
       q->front=q->rear=0;}/*chu shi hua*/

    int enqueue(queue*q,int x)
    {
       if((q->rear+1)%size==q->front)
        return(false);
         q->element[q->rear]=x;
          q->rear=(q->rear+1)%size;
          return(true);    } /*chong xin she zhi wei zhi zhen*/

          int dequeue(queue*q,int*x)
          {
          if(q->front==q->rear)
          return(false);
          *x=q->element[q->front];
          q->front=(q->front+1)%size;
          return(true);}

          int queueempty(queue*q)
          {
          if(q->front==q->rear)
           return(false); }

        int getqueue(queue*q,int *e)
          {
          if(q->front==q->rear)
          return(false);
          else{*e=q->element[q->front];}
          }

    void main()
    {int n,i,k,e;
    int s;
    queue q;
    printf("please input N");
    scanf("%d",&n);
    for(i=1;i<=n;i++)

    printf(" ");printf("1");

    printf("\n");
    initqueue(&q);
    enqueue(&q,0);
    enqueue(&q,1);
    enqueue(&q,1);
    k=1;
    while(k<n)
    {
    for(i=1;i<=n-k;i++)
    printf(" ");
    enqueue(&q,0);
    do{
    dequeue(&q,&s);
    getqueue(&q,&e);
    if(e!=0)printf("%d ",e);
    else printf("\n");
    enqueue(&q,s+e);}
    while(e!=0);
    k++;}
    dequeue(&q,&e);
    while(!queueempty(&q))
    {dequeue(&q,&e);
    printf("%d ",e);
    clrscr();
    }
}

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

【上篇】
【下篇】

抱歉!评论已关闭.