999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對C語言組織循環(huán)的方法探討

2012-04-29 02:27:03王叢林
成才之路 2012年25期

王叢林

摘 要:C語言是一門理想的結(jié)構(gòu)化程序設(shè)計語言,是學(xué)生學(xué)習(xí)程序設(shè)計的基礎(chǔ)課程。可通過對比手工計算,分析C語言組織循環(huán)的方法,著重討論累加、累乘問題的計算,以及組織循環(huán)應(yīng)注意的問題,讓學(xué)生更好地掌握這一知識。

關(guān)鍵詞: C語言;組織循環(huán);計算方法

C語言是一門理想的結(jié)構(gòu)化程序設(shè)計語言,開設(shè)C語言程序設(shè)計課程的目的是要求學(xué)生利用C語言進(jìn)行程序設(shè)計,重點在掌握程序設(shè)計的方法。程序設(shè)計通常包括以下幾項:針對提出的問題,研究確定求解的計算方法(算法)、根據(jù)計算方法繪制流程圖、根據(jù)計算流程圖編寫程序。其中,計算方法是程序設(shè)計靈魂,是編程的關(guān)鍵。

一、計算方法的比較

關(guān)于計算方法的選擇,必須注意到手算和計算機(jī)算有很大的差別的。手算更偏重于用人的經(jīng)驗去選擇恰當(dāng)?shù)耐緩絹肀M量減少工作量,縮短計算時間,提高計算精度;但是使用計算機(jī)時,多采用具有相同算法結(jié)構(gòu),簡單重復(fù)的計算,這樣能充分發(fā)揮計算機(jī)的長處,(運算速度快,最適合于重復(fù)操作,它有自動判斷的功能,因此,能控制重復(fù)執(zhí)行的次數(shù))。循環(huán)的計算結(jié)構(gòu)便于編寫程序,減少運算次數(shù)、提高計算速度,因此,程序設(shè)計語言中的循環(huán)語句成為具有廣泛應(yīng)用的基本語句之一,程序借助循環(huán)語句可以比較簡單地實現(xiàn)計算問題中包含的多次重復(fù)的計算(有規(guī)律的重復(fù)問題)。

例如:以下問題求解,用手工操作是這樣的:

①試求 1+2+3+4+……+100 的值

[分析與解] 利用等差數(shù)列求公式。(首項+末項)×項數(shù)÷2=(1+100)×100÷2=5050.

②試求 1×2+2×3+3×4+……+99×100的值

[分析與解] 用整數(shù)列項。原式=(1×2×3+2×3×3+3×4×3+4×5×3+……+99×100×3)÷3 = [1×2×3+2×3×(4-1)+3×4×(5-2)+4×5×(6-3)+……+99×100×(101-98) ]÷3=[99×100×101]÷3=333300.

③試求1×1+2×2+3×3+……99×99+100×100的值

[分析與解]利用平方差公式。1×1+2×2+3×3+……+n×n=n(n+1)(2n+1)÷6,原式=100×101×(2×100+1)÷6=338350.

上述問題,用計算機(jī)求解是這樣的:用“迭代”的方法進(jìn)行運算。設(shè)一個變量s,用它來存放被加數(shù),x作為加數(shù),使s+x?圯s,x值變化,用循環(huán)來控制x的增值和使s加x。s的值不斷變化,用上一次計算出的s值來求下一次新的s值,然后再以這個新的s值去求下一個s值。每次以新值代替原值。S稱為“迭代變量”。具體求和的過程可寫成所謂的“括號套”的結(jié)構(gòu)形式:(…(((0+x1)+x2)+x3)+…+x99)+x100

①求 1+2+3+4+……+100 的值中,x1=1、x2=2、x3=3……x100=100. ②求 1×2+2×3+3×4+……+99×100的值中,x1=1×2、x2=2×3、x3=3×4……x100=99×100. ③求1×1+2×2+3×3+……99×99+100×100的值中,x1=1×1、x2=2×2、x3=3×3……x100=100×100. 若用變量s表示部分和,那么上述算式可改寫為:

0?圯ss中為0

s+x1?圯s s中為x1

s+x2?圯s s中為x1+x2

s+x3?圯s s中為x1+x2+x3

…… ……

s+x100?圯s s中為x1+x2+x3+……x100

用循環(huán)表示此求和過程,C語言實現(xiàn)循環(huán)常用三種語句:while、do-while和for語句。循環(huán)次數(shù)能估計出來時,一般采用for語句。

①試求 1+2+3+4+……+100 的值。源程序為:

# include "stdio.h"

void main()

{

int i,s=0;/ *賦初值 0?圯s * /

for(i=1;i<=100;i++)

s+=i; / * 累加和s+i?圯s * /

printf("%d \n",s);

}

②試求 1×2+2×3+3×4+……+99×100的值。

# include "stdio.h"

void main()

{

int i;

longs=0;\*初值為0*\

for(i=1;i<=99;i++)

s+=i*(i+1);

printf("%ld \n",s) ;

}

以上是求累加數(shù)(若干項之和)。同樣,若求累乘數(shù) 1×2×3×4×……×100 的值,求積過程可寫成 (…(((1×x1)×x2)×x3)×…×x99)×x100結(jié)構(gòu)形式。用循環(huán)表示這個求積過程,源程序為:

# include "stdio.h"

void main()

{

int i,s=1;

for(i=1;i<=100;i++)

s×=i;

printf("%d \n",s);

}

比較上例可知:此時s的初值是s=1而不是s=0 ,即初始值的確定問題。下面對循環(huán)語句使用作進(jìn)一步說明。

二、關(guān)于循環(huán)語句,需要弄清楚的幾個問題

(1)循環(huán)內(nèi)變量往往需要賦初值。如上例中迭代變量 s賦初值。關(guān)于賦初值需考慮兩個問題。

其一,選初值的語句應(yīng)放在程序的什么位置,從上面的實例中可以看到這樣的規(guī)律:對變量選初值的語句應(yīng)設(shè)在循環(huán)體之外,即在for、while語句之前。如s=0、s=1。如果是雙循環(huán),則內(nèi)循環(huán)體的變量取初值外循環(huán)體外,即在內(nèi)循環(huán)的for、while之前。外循環(huán)體中的變量取初值的語句應(yīng)在外循環(huán)外,即在外循環(huán)的for、while語句前。

例如:求階乘之和s=m!的程序嵌套循環(huán)中變量的置位問題

# include"stdio.h"

void main()

{

inti,m,p,s;

s=0, m=1;/*累加結(jié)果變量s清零*/

while (m<=100)

{ p=1,i=1; /*共用變量p復(fù)位*/

while ( i<=m)

{ p*=i;i++;}

s+=p;m++;}

printf ("s=%d\n",s);

}

說明:程序由組成的二重循環(huán)構(gòu)成。內(nèi)層循環(huán)負(fù)責(zé)求某數(shù)的階乘,外層循環(huán)負(fù)責(zé)累加各數(shù)階乘的結(jié)果。存放累加結(jié)果的變量應(yīng)在二重循環(huán)之外清零,存放每個數(shù)結(jié)果的共用變量p應(yīng)在完成存放前一個數(shù)階乘結(jié)果之后,開始存放新數(shù)階乘結(jié)果之前,對共用變量復(fù)位,即在外層循環(huán)之內(nèi)、內(nèi)層循環(huán)變量之外對變量p復(fù)位。

其二,怎樣選擇初值,如上例中s=0 , s=1等,循環(huán)中的某些語句往往是與計算中題目的相應(yīng)項一一對應(yīng)的。若開始初值不知如何確定,一般可以先寫出循環(huán)體中的語句,然后再選初始值。從例中看出,求累加和運算,一般值為0,求累乘積一般值為1,但要看具體情況。

(2)循環(huán)體語句順序和循環(huán)條件有關(guān)系。

例如: 求階乘之和s=m!的程序

#include"stdio.h"

void main()

{

inti=0,s=0;

while (i<=100)

{s+=i ;

i++;}

printf("s=%d\n",s) ;

}

上例輸出結(jié)果為5050,若改變循環(huán)體內(nèi)語句的順序為 i++,s+=i輸出結(jié)果5150,這是因為循環(huán)被多執(zhí)行一次,需要把循環(huán)條件i<=100改為i<100或i<=99才能得到正確的結(jié)果。因此,對依靠循環(huán)條件來控制循環(huán)次數(shù)的循環(huán),應(yīng)注意對邊界條件進(jìn)行檢驗,防止循環(huán)體多執(zhí)行一次。一般檢驗,可用從特殊到一般的方法。

參考文獻(xiàn):

[1]譚浩強(qiáng).C語言程序設(shè)計[M].北京:清華大學(xué)出版社,1999.

[2]汪大菊.C語言[M].天津:天津大學(xué)出版社,1996.

(新鄉(xiāng)職業(yè)技術(shù)學(xué)院)

主站蜘蛛池模板: 毛片最新网址| 日韩精品成人在线| 久久永久精品免费视频| 成人国产精品2021| 亚洲美女高潮久久久久久久| 成人午夜天| 日韩高清无码免费| 亚洲天堂日韩av电影| 国产综合另类小说色区色噜噜 | 亚洲三级a| 18禁不卡免费网站| 欧洲一区二区三区无码| 国产精品成人一区二区| 91成人在线观看视频| 国产成人高清精品免费5388| 亚洲av片在线免费观看| 91精品日韩人妻无码久久| 毛片在线看网站| 茄子视频毛片免费观看| 午夜日b视频| 欧美精品v| 91久久国产热精品免费| 中文字幕 欧美日韩| 国产亚洲精品97AA片在线播放| 91外围女在线观看| 久久熟女AV| 波多野吉衣一区二区三区av| 91破解版在线亚洲| 日韩中文无码av超清| 尤物精品视频一区二区三区| 国产女人在线| 国产情侣一区| 久久青草热| 一级毛片免费高清视频| 天天躁夜夜躁狠狠躁躁88| 美女无遮挡免费网站| 亚洲中文字幕在线观看| 久久男人资源站| 成人在线观看不卡| 亚洲成综合人影院在院播放| 国产欧美日韩精品综合在线| 伊人丁香五月天久久综合 | 久久无码免费束人妻| 国产丝袜第一页| 99偷拍视频精品一区二区| 99热在线只有精品| 91久久精品日日躁夜夜躁欧美| 在线色综合| 97在线观看视频免费| 美女免费黄网站| 亚洲国产欧美国产综合久久 | 精品久久777| 美女啪啪无遮挡| 凹凸国产熟女精品视频| 国产va视频| 8090午夜无码专区| 国产熟女一级毛片| 特级欧美视频aaaaaa| 成人综合在线观看| 天天色天天操综合网| 在线日韩日本国产亚洲| 国产精品视频第一专区| 亚洲性网站| 91精品伊人久久大香线蕉| 亚洲国产亚综合在线区| 亚洲欧美成aⅴ人在线观看| 国产精品久久久免费视频| 色综合久久88| 国内视频精品| 亚洲国产日韩在线观看| 久久精品免费看一| AⅤ色综合久久天堂AV色综合| 亚洲制服中文字幕一区二区| 婷婷综合在线观看丁香| 萌白酱国产一区二区| 国产一级无码不卡视频| 国产在线欧美| 日韩欧美国产成人| 亚洲第一成人在线| 国产本道久久一区二区三区| 97在线观看视频免费| 久久无码av一区二区三区|