循环结构课后反思
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?一、 ? 個(gè)人認(rèn)為的重點(diǎn)
1.for循環(huán)中(<條件表達(dá)式>;<循環(huán)表達(dá)式>;<循環(huán)體語句>)的熟練運(yùn)用。
2.循環(huán)結(jié)構(gòu)的熟練嵌套以及每一個(gè)嵌套循環(huán)所代表的含義要極為清楚。
3.循環(huán)表達(dá)式的書寫,嘗試多樣化的表達(dá)式。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?二、解析代碼
#include<stdio.h> int main() {int i,j,k,width;printf("親輸入最大寬度:\n");scanf("%d",&width);if(width%2!=0){for(i=1;i<=(width+1)/2;i++){for(j=i;j<=(width-1)/2;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}for(i=1;i<=(width-1)/2;i++){for(j=1;j<=i;j++)printf(" ");for(k=1;k<=width-2*i;k++)printf("*");printf("\n");}}else printf("錯(cuò)誤\n") ;}?
解析:首先這個(gè)代碼實(shí)現(xiàn)的圖形是一個(gè)菱形,而實(shí)現(xiàn)這個(gè)圖形的切入點(diǎn)就是“width”--它的最長(zhǎng)寬度了。我們發(fā)現(xiàn),以這一個(gè)最長(zhǎng)寬度為界限,整個(gè)圖形被分為兩部分,即兩個(gè)等腰三角形,而最長(zhǎng)寬度必須要為單數(shù),不然就實(shí)現(xiàn)不了頂部數(shù)量為一個(gè)*號(hào)的菱形。
? ? ? ? ? 所以,先用“if”條件語句判斷是否width為單數(shù)再進(jìn)行之后的循環(huán),不是的話則輸出“錯(cuò)誤”。我們先對(duì)上面的三角新進(jìn)行編寫:在用“int”定義了i(行),j(“空格”),k(“*”)之后,先對(duì)“i”循環(huán)進(jìn)行編寫。我們發(fā)現(xiàn)最大寬度“width”所對(duì)應(yīng)的等腰三角形的行數(shù)的關(guān)系是i=(width+1)/2,比如,輸入的最大寬度“width”的值為13,那它所對(duì)應(yīng)的行數(shù)就是7了,所以i要小于等于這個(gè)行數(shù),也就是i<=(width+1)/2。之后在“i”循環(huán)的下面進(jìn)行有關(guān)“j”和"k"的嵌套。
? ? ? ? ?"j"是“空格”的輸出。在第一行中,當(dāng)輸入的“width”是13時(shí),每行要輸出的空格數(shù)量分別是6、5、4、3、2、1、0,那么其對(duì)應(yīng)的關(guān)系就應(yīng)該是j=(width-1)/2,所以j<=(width-1)/2,j=i進(jìn)行賦值,j++進(jìn)行循環(huán)。注意:我們發(fā)現(xiàn)“(width-1)/2”是一個(gè)定值。要想讓輸出的空格數(shù)量逐一遞減那么前面對(duì)“j”的賦值就應(yīng)該是變量了,所以讓"j=i",后面對(duì)“k”的賦值我們換成讓k的關(guān)系式為變量,那么相應(yīng)的“k”的賦值就應(yīng)該是“k=1”了。
? ? ? ? 同樣,“k”是“*”的輸出。“k”的每行輸出數(shù)量依次是1、3、5、7...,這里我們不寫K和“width”的關(guān)系式,而改成與“i”形成的變量關(guān)系式。于是根據(jù)等差數(shù)列,有k=2*i-1,所以k<=2*i-1,k=1賦值,k++循環(huán)。到這里就完成了上部分的等腰三角形了:
? ? 下半部分的三角形在行數(shù)是比上半部分行數(shù)少一的,故:i<=(width-1)/2。每行要輸出的空格分別是1、2、3....遞增,由于“i”本身自增,所以j=1,j<=i,i++。每行要輸出的“*”分別是以“-2”為公差的等差數(shù)列,首項(xiàng)是最大寬度下面的一行即:width-2,由等差公式an=a1+d(n-1)可得k<=width-2i。
轉(zhuǎn)載于:https://www.cnblogs.com/Artificial/p/10693164.html
總結(jié)
- 上一篇: 三:Bootstrap-js插件
- 下一篇: BZOJ 1433 Luogu P20