C语言用队列打印杨辉三角
时间: 2023-03-03 18:46:37 浏览: 153
以下是使用C语言实现队列打印杨辉三角的示例代码:
```
#include <stdio.h>
#define MAXN 1000
int Queue[MAXN];
int head = 0, tail = 0;
void push(int x) {
Queue[tail++] = x;
}
int pop() {
return Queue[head++];
}
int empty() {
return head == tail;
}
void print_triangle(int n) {
int i, j;
push(1);
for (i = 1; i <= n; i++) {
int prev = 0;
for (j = 0; j < i; j++) {
int cur = pop();
printf("%d ", cur - prev);
prev = cur;
push(cur + prev);
}
printf("\n");
}
}
int main() {
int n;
printf("请输入要打印的行数:");
scanf("%d", &n);
print_triangle(n);
return 0;
}
```
这个程序使用队列来生成并打印出杨辉三角的前n行。具体地,它从1开始,按行从左到右遍历三角形,同时将每一行的元素放入队列中。在打印每个元素时,它使用该元素和前一个元素之间的差异,以避免重复计算。每一行打印完毕后,它将下一行的元素加入队列中。最后,它打印完整个三角形并结束程序。
阅读全文