谁能告诉一下用循环队列实现打印杨辉三角形的C语言代码?

如题所述

#include <stdio.h>
#include <iostream.h>
#include "queue.h"
void YANGHUI(int n) {
SeqQueue q(n+2); //队列初始化p121
q.EnQueue(1); q.EnQueue(1);
int s = 0, t;
for (int i = 1; i <= n; i++) { //逐行计算
cout << endl;
q.EnQueue(0);
for (int j = 1; j <= i+2; j++) { //下一行
q.DeQueue(t);
q.EnQueue(s + t);
s = t;
if (j != i+2) cout << s << ' ';
}
}
}
课件地址:http://wenku.baidu.com/view/cb953d5e804d2b160b4ec0ba.html
3.3.4 队列的应用:打印杨辉三角形。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-24
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
2.程序源代码:
main()
{int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
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");
}
}
第2个回答  2011-03-25
#include <stdio.h>
#define N 10
main()
{int a[N][N],i,j;

for(i=0;i<N;i++)
{a[i][0]=1;
a[i][i]=1;
}

for(i=2;i<N;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
printf("%-5d",a[i][j]);
printf("\n");
}
}
相似回答