用c语言的队列打印杨辉三角
时间: 2024-03-29 07:30:32 浏览: 116
C语言利用队列打印杨辉三角
以下是使用C语言队列打印杨辉三角的代码和解释:
```c
#include <stdio.h>
#define MAX 10
int main()
{
int queue[MAX], front = -1, rear = -1;
int i, j, n;
printf("Enter the number of rows: ");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
if (front == -1)
{
front = 0;
rear = 0;
queue[rear] = 1;
}
else
{
queue[++rear] = 1;
for (j = 0; j < i; j++)
{
queue[++rear] = queue[front] + queue[front + 1];
front++;
}
queue[++rear] = 1;
front = 0;
}
for (j = 0; j <= i; j++)
{
printf("%d ", queue[front]);
front++;
}
printf("\n");
front = 0;
rear = -1;
}
return 0;
}
```
解释:
1. 定义一个队列queue,以及队列的头部front和尾部rear,初始值均为-1。
2. 读入杨辉三角的行数n。
3. 对于每一行i,如果队列为空,则将1入队,并将front和rear均设为0;否则,将1入队,然后计算队列中相邻两个数之和并入队,直到队列中所有数都被计算过,最后再将1入队。
4. 遍历队列中的所有数并输出,然后将front设为0,rear设为-1,以便下一行的计算。
阅读全文