一.使用嵌套循環產生下列圖案
$
$$
$$$
$$$$
$$$$$
首先確定行數為i=5,因此外套循環的終止條件是i到達6時退出循環;由列數為5並且每一列元素數逐漸遞增比變化可知,內層循環的判定條件j受外層循環的影響,由圖可知第一行一個元素,第二行兩個元素。。。所以j<=i;換行符位於外層循環里。
如下:
#include <stdio.h>
#define SIZE 5 //使用#define處理常量就能夠更改值達到更改圖案使其擴大或縮小的目的
int main(void) { int i,j; for(i=1;i<=SIZE;i++) { for(j=1;j<=i;j++) printf("$"); printf("\n"); } return 0; }
二.使用嵌套循環產生下列圖案
F
FE
FED
FEDC
FEDCB
FEDCBA
首先確定行數i為6,其次確定列數j為6並隨着行數的增加而增加,故j受i的影響,即j<=i;又每行的字符數目逐漸增加,但是其字符的大小呈遞減的形式,故使用‘F’-j的形式輸出,這個時候i和j都應該初始化為0的形式;
#include <stdio.h>
#define SIZE 6
#define ch 'F' //巧妙利用常數定義來定義圖案的大小和字母的多少,使得程序更具有變通性
int main(void) { int i,j; for(i=0;i<SIZE;i++) { for(j=0;j<=i;j++) printf("%c",ch-j); printf("\n"); } return 0; }
如果您的系統不支持ASCII碼或其他以數字編碼的碼,您可以把一個字符數組初始化為字母表中的字母:
char ch[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //數組索引0-25分別對應每個字母
int i,j; for(i=5;i>=0;i--) { for(j=5;j>=i;j--) //5對應F,每一行元素數變化說明受到i的影響,故i也需要從5遞減
printf("%c",ch[j]); printf("\n"); }
三.程序要求用戶輸入一個大寫字母,使用嵌套循環產生下列金字塔圖案:

以上圖案是通過輸入大寫字母E產生的。
思路:使用一個外部循環來處理行,在每一行中使用三個內部循環,一個處理空格,一個以升序打印字母,一個以降序打印字母。
int i,j,k; char ch; printf("Please input a character: "); scanf("%c",&ch); k=ch-'A'+1; //行數
for(i=0;i<k;i++) { for(j=0;j<k-i;j++) printf(" "); for(j=0;j<=i;j++) //升序排列
printf("%c",'A'+j); for(j=i-1;j>=0;j--) //降序排列
printf("%c",'A'+j); printf("\n"); }
