tft每日頭條

 > 生活

 > c語言打印正三角形

c語言打印正三角形

生活 更新时间:2024-10-12 01:33:42

題目要求:

規定這樣一種形狀的三角形,如圖7-36所示為一個符号三角形:

c語言打印正三角形(c語言打印符号三角形)1

#include "stdio.h" typedef struct QNode{ /*定義隊列結點類*/ char data; struct QNode *next; } QNode , *QueuePtr; typedef struct{ /*定義一個鍊隊列*/ QueuePtr front; /*隊頭指針*/ QueuePtr rear; /*隊尾指針*/ }LinkQueue; initQueue(LinkQueue *q){ /*初始化一個空隊列*/ q->front = q->rear = (QueuePtr)malloc(sizeof(QNode)); /*創建一個頭結點,隊頭隊尾指針指向該結點*/ if( !q->front) exit(0); /*創建頭結點失敗*/ q->front->next = NULL; /*頭結點指針域置NULL*/ } EnQueue(LinkQueue *q, char e){ /*入隊列操作*/ QueuePtr p; p = (QueuePtr)malloc(sizeof(QNode)); /*創建一個隊列元素結點*/ if( !q->front) exit(0); /*創建頭結點失敗*/ p->data = e; /*将元素e入隊列*/ p->next = NULL; /*修改隊尾指針*/ q->rear ->next = p; q->rear = p; } DeQueue(LinkQueue *q, char *e){ /*如果隊列q不為空,删除q的隊頭元素,用e返回其值*/ QueuePtr p; if(q->front == q->rear) return; /*隊列為空,返回*/ p = q->front->next; *e = p->data; q->front->next = p->next; if(q->rear == p) q->rear = q->front;/*如果隊頭就是隊尾,則修改隊尾指針*/ free(p); } printTriangle(int n){ LinkQueue q; char e,a,b ; int i,j; initQueue(&q); /*初始化隊列*/ printf("Input the the charecter( /-) of the row.1\n"); for(i=0;i<n;i ){ /*輸入第一行的符号,并入隊列*/ scanf("%c",&e); EnQueue(&q,e); } printf("The charecter triangle is like\n"); for(i=0;i<n;i ){ /*控制符号三角形的行數*/ for(j=0;j<i;j ) printf(" "); /*控制輸出格式,打印成倒三角形狀*/ DeQueue(&q,&a); /*出隊列,打印每行的第一個符号*/ printf("%c ",a); for(j=0;j<n-i-1;j ) /*控制輸出每一行,第i行輸出n-i個符号*/ { DeQueue(&q,&b); /*出隊列*/ printf("%c ",b); if(a == b) EnQueue(&q,' '); /*向隊尾插入新元素*/ else EnQueue(&q,'-'); a = b; } printf("\n"); /*控制輸出格式,打印成倒三角形狀*/ } } main() { int n; printf("Please input the number of ' ' or '-' of the row.1 \n"); scanf("%d",&n); /*輸入符号三角形中第一行的元素個數*/ getchar(); printTriangle(n); /*打印符号三角形*/ getche(); }

運行結果:

c語言打印正三角形(c語言打印符号三角形)2

運行結果

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved