c语言利用队列打印出杨辉三角形的前n行
时间: 2023-06-07 14:09:14 浏览: 93
好的,你可以使用C语言编写一个程序来利用队列打印出杨辉三角形的前n行。以下是一个示例代码:
```c
#include <stdio.h>
#define MAXN 1000
int n, top, front;
int queue[MAXN];
int result[MAXN][MAXN];
void push(int x) {
queue[top++] = x;
}
int pop() {
return queue[front++];
}
int empty() {
return top == front;
}
void print() {
int i, j;
for (i = 1; i <= n; ++i) {
for (j = 1; j <= n - i; ++j) {
printf(" ");
}
for (j = 1; j <= i; ++j) {
printf("%d ", result[i][j]);
}
printf("\n");
}
}
int main() {
scanf("%d", &n);
int i, j;
push(1);
push(1);
for (i = 2; i <= n; i++) {
int cnt = 0, last = 0;
while (!empty()) {
int x = pop();
if (last != 0) {
result[i][++cnt] = last + x;
}
last = x;
push(x);
}
push(1);
result[i][1] = result[i][i] = 1;
}
print();
return 0;
}
```
这段代码可以通过队列的方式逐行生成杨辉三角形,并将结果保存在二维数组中,最后输出前n行杨辉三角形。