本範例要求從鍵盤輸入任意整數 n,通過程式執行輸出對應高度為 n 的等腰三角形。
演算法思想
① 設計以高度 n 為引數的一個函數,函數返回值為空,在函數體中實現等腰三角形的列印;圖形的最終列印需要利用二層迴圈設計實現。
② 圖形共輸出 n 行,外迴圈變數 i 表示 n 行的輸出,迴圈變數的變化範圍為 0~(n—1)。
③ 迴圈變數 j 表示每一行的“*”號輸出。由於每一行的輸出不同,第 j 行輸出空格的個數為 (n—i),第 j 行輸出“*”號的個數為(2*i+1)。控制“*”號輸出的內迴圈變數 j 的變化範圍為 0~(2*i)。
④ 在主函數中輸入 n 作為實參,呼叫定義函數,列印等腰三角形。
程式程式碼
#include <stdio.h>
int trangle(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=n-i;j++)
putchar(' ');
for(j=0;j<=2*i;j++)
putchar('*');
putchar('n');
}
return 0;
}
int main()
{
int n;
printf("Enter n:");
scanf("%d",&n);
printf("n");
trangle(n);
return 0;
}
偵錯執行結果
當 n 取值為 8 時,列印出的等腰三角形如下所示:
Enter n:8
*
***
*****
*******
*********
***********
*************
***************
當 n 取值為 20 時,列印出的等腰三角形如下所示:
Enter n:20
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
*******************************
*********************************
***********************************
*************************************
***************************************