1. 程式人生 > >C入門【四】

C入門【四】

1.在螢幕上輸出以下圖案:在這裡插入圖片描述

思考過程:我第一次看到這道題時,我腦海中出現兩個關鍵詞 for 和 數字 ,出現 for 的原因是以上圖案出現太多重複內容,1.可以用printf一行一行列印 但是這樣太蠢 2.使用迴圈快速就解決。
怎麼使用for 分析!! 以上圖形 又有了兩個部分上三角和下三角,三個變數 行數 空格 * 重複出現。所以首先在本子上 寫出 三者關係以及數量變化過程

行數 空格 和 *
1 4 1
2 3 3
3 2 5
4 1 7

行數和空格變化相反 滿足2n-1;
這道題也可以加深難度 可以自定圖形大小,簡單的變數引用變化,此處不討論

int i, j, k;
	//正三角
	for (i = 1; i <= 5; i++){
		for (k = 1; k <= 5 - i; k++){
			printf(" ");
		}
		for (j = 1; j <= 2 * i - 1; j++){
			printf("*");
		}
		printf("\n");
	}
	//倒三角
	for (i =
4; i >= 1; i--){ for (k = 1; k <= 5 - i; k++){ printf(" "); } for (j = 1; j <= 2 * i - 1; j++){ printf("*"); } printf("\n"); }

.求出0~999之間的所有“水仙花數”並輸出。

“水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。
這道題純粹的數學公式變化成計算機語言
153=1^3 + 5^3 +3^3;變成計算機語言 然後加上迴圈

int n;
int f1, f2, f3; int max; for (n = 0; n <= 999; n++){ max = pow((n % 10), 3) + pow(((n / 10) % 10), 3) + pow(((n / 100)), 3); //此處可以變成條件寫入if中 但為了更加直觀 if (n == max){ printf("%d\n", n); } }

總結

C語言入門階段最應該加強基礎訓練,訓練邏輯思維,以及改變以往的思考方式,如何將字面內容轉變為你子腦海中的抽象函式,然後將其轉變成用C語言或其它 程式語言實現。