⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 杨辉三角,安装好 Dev-C++ 后
💻 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 + -