用队列计算并打印杨辉三角的前8行 请高手来调试啊啊啊啊啊啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用队列计算并打印杨辉三角的前8行 请高手来调试啊啊啊啊啊啊相关的知识,希望对你有一定的参考价值。

void Out_Number(int n) // 利用队列Q打印n行杨辉三角形
int s1,s2; queue Q; // 用queue代表某种队列类型
cout<<1<<endl; // 输出第一行上的1
Q.append(1); // 所输出的1入队
for(i=2; i<=n; i++) // 依次计算并输出第2~i行上的数据
s1=0; // 存放前一个出队的数
for(j=1; j<=i-1; j++) //计算并输出第i行上前 i-1 个数据
s2=Q.serve( ); // 取队头元素
cout<<s1+s2; // 计算并输出当前行中的一个元素
Q.append(s1+s2); // 所输出的当前行中的元素入队
s1=s2; // 调整变量的值

cout<<1<<endl; // 输出当前行中的最后一个元素1并换行
Q.append(1); //本行最后的1入队

Q.serve()是出队还是取顶端元素?
看名字像是取元素啊(出队的方法名字一般是pop()之类的)?
这里应该要出队一个元素才对。
参考技术A 好像没有错!

利用队列打印出n行杨辉三角形.用C语言

参考技术A

其实根据原理来就可以了,程序在附件中,运行结果如下:


本回答被提问者采纳
参考技术B #include <stdio.h>
#define HANG 10
#define MAX 100
#define X(a) (a++)%MAX
int main()

int queue[MAX];
int r=0,l=0,n,m,i,j;
queue[X(r)]=0;
queue[X(r)]=1;
m=queue[X(l)];
for(i=0;i<HANG;i++)

queue[X(r)]=0;
for(j=0;j<i+2;j++)

n=m;
m=queue[X(l)];
queue[X(r)]=m+n;
if(n!=0)
printf("%d ",n);

printf("\n");


return 0;
追问

是那种输入n行然后打印的,这个是我们数据结构的题目

追答

#include
#define MAX 100
#define X(a) (a++)%MAX
int main()

int queue[MAX];
int r=0,l=0,n,m,i,j,h;
printf("输入杨辉三角的行数:");
scanf("%d",&h);
queue[X(r)]=0;
queue[X(r)]=1;
m=queue[X(l)];
for(i=0;i<h;i++)

queue[X(r)]=0;
for(j=0;j<i+2;j++)

n=m;
m=queue[X(l)];
queue[X(r)]=m+n;
if(n!=0)
printf("%d ",n);

printf("\n");


return 0;

以上是关于用队列计算并打印杨辉三角的前8行 请高手来调试啊啊啊啊啊啊的主要内容,如果未能解决你的问题,请参考以下文章

打印杨辉三角形(Pascal's triangle)——利用队列

利用队列打印出n行杨辉三角形.用C语言

杨辉三角队列的实现 利用循环顺序队列打印杨辉三角。杨辉三角的特点是两个腰上的数字都为1,其它位置上的

用队列打印出n行的杨辉三角,用c语言写的,

计算机高手大神来啊啊啊!啥是溢出,它对二进制有何影响呢?谢谢啦!详细点哦!

队列打印杨辉三角,不懂啊,急