📄 main.c
字号:
/*
* 作者:antigloss
* 程序:杨辉三角
* 最后修改:05-9-13 22:30
* 蚂蚁的 C/C++ 标准编程
* http://cpp.ga-la.com
*/
#include <stdio.h>
#include "header/linkqueue.h"
int main(void)
{
int i, k = 1, n = 5, e, s; /* 修改 n 的值可以改变杨辉三角层数 */
LinkQueue Q;
if ( !InitQueue( &Q ) ) { /* 初始化队列 */
return -1;
}
for ( i=1; i<=n; i++ ) {
putchar(' ');
}
printf("1\n"); /* 在中心位置输出杨辉三角最顶端的"1" */
if ( !EnQueue( &Q, 0 ) ) { /* 添加行界值 */
return -1;
}
if ( !EnQueue( &Q, 1 ) ) {
return -1;
}
if ( !EnQueue( &Q, 1 ) ) { /* 第二行的值入队列 */
return -1;
}
while ( k < n ) {
if ( !EnQueue ( &Q, 0 ) ) { /* 行界值"0"入队列 */
return -1;
}
for ( i = 1; i <= n-k; ++i ) {
putchar(' '); /* 输出n-k个空格以保持三角型 */
}
do { /* 输出第 k 行,计算第 k+1 行 */
GetHead( &Q, &s );
DeQueue( &Q );
GetHead( &Q, &e );
if ( e ) { /* 若e为非行界值0,则打印输出 e 的值并加一空格 */
printf("%d ", e);
} else {
putchar('\n'); /* 否则回车换行,为下一行输出做准备 */
}
if ( !EnQueue( &Q, s+e ) ) {
return -1;
}
} while ( e != 0 );
k++;
} /* while */
DeQueue ( &Q ); /* 行界值"0"出队列 */
while ( !QueueEmpty(&Q) ) { /* 单独处理第 n 行的值的输出 */
GetHead( &Q, &e );
DeQueue ( &Q );
printf( "%d ", e );
} /* while */
puts("\n\nPress Enter to quit...[http://cpp.ga-la.com]");
getchar();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -