C入門【四】
阿新 • • 發佈:2019-01-06
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語言或其它 程式語言實現。