?? 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 + -