C語(yǔ)言循環(huán)一維數(shù)組_第1頁(yè)
C語(yǔ)言循環(huán)一維數(shù)組_第2頁(yè)
C語(yǔ)言循環(huán)一維數(shù)組_第3頁(yè)
C語(yǔ)言循環(huán)一維數(shù)組_第4頁(yè)
C語(yǔ)言循環(huán)一維數(shù)組_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1C語(yǔ)言循環(huán)一維數(shù)組一、while語(yǔ)句while(條件)語(yǔ)句;條件語(yǔ)句;0非0i=1;while(i<=10){printf(“%d”,i);i++;}循環(huán)條件循環(huán)體循環(huán)不變式循環(huán)條件改變式ctrl+break可以是任意表達(dá)式:非0:真

0:假一條語(yǔ)句。如果需要寫(xiě)多條語(yǔ)句,必須在這多條語(yǔ)句外加{},構(gòu)成復(fù)合語(yǔ)句第1頁(yè)/共28頁(yè)sum=0;sum=sum+1;sum=sum+2;sum=sum+3;

…………sum=sum+10;求sum=sum=0;i=1;while(i<=10){sum=sum+i;i++;}循環(huán)不變式:sum=sum+i;循環(huán)條件:i的取值1~10第2頁(yè)/共28頁(yè)二、do/while語(yǔ)句do

語(yǔ)句;while(條件);條件語(yǔ)句0非0i=1;do{printf("%d",i);i++;}while(i<=10);可以是任意表達(dá)式:非0:真

0:假一條語(yǔ)句。如果需要寫(xiě)多條語(yǔ)句,必須在這多條語(yǔ)句外加{},構(gòu)成復(fù)合語(yǔ)句第3頁(yè)/共28頁(yè)while和do/while的比較條件語(yǔ)句0非0條件語(yǔ)句0非0循環(huán)次數(shù):無(wú)數(shù)次或者0次無(wú)數(shù)次或者至少要1次第4頁(yè)/共28頁(yè)

到最后一項(xiàng)的絕對(duì)值小于等于10-5(系統(tǒng)有求絕對(duì)值的庫(kù)函數(shù)fabs)

循環(huán)不變式:sum=sum+flag*1/n;循環(huán)條件改變式:n=n+2;循環(huán)條件:fabs(flag*1/n)>1E-5例:利用格里高利公式求圓周率∏(用pi表示)

書(shū)上寫(xiě)的是1.0,寫(xiě)1可以嗎,為什么?#include<math.h>?第5頁(yè)/共28頁(yè)三、for語(yǔ)句for(exp1;exp2;exp3)

語(yǔ)句exp3語(yǔ)句exp1exp20非0循環(huán)條件循環(huán)體第6頁(yè)/共28頁(yè)while和for的關(guān)系while(條件)語(yǔ)句for(exp1;exp2;exp3)

語(yǔ)句表達(dá)式語(yǔ)句0非0exp3語(yǔ)句exp1exp20非0exp1;while(exp2){

語(yǔ)句;

exp3;}第7頁(yè)/共28頁(yè)while(條件)語(yǔ)句for(exp1;exp2;exp3)

語(yǔ)句while和for的關(guān)系sum=0;i=1;while(i<=10){sum=sum+i;i++;}sum=0;for(i=1;i<=10;i++)sum=sum+i;exp1;while(exp2){

語(yǔ)句;

exp3;}第8頁(yè)/共28頁(yè)break語(yǔ)句作用:1.跳出switch語(yǔ)句2.

跳出當(dāng)層循環(huán)for(i=0;i<5;i++){c=getchar();if(c==’\n’)break;putchar(c);}輸入:abc↙123↙輸出:abc第9頁(yè)/共28頁(yè)continue語(yǔ)句功能:跳過(guò)continue后面的語(yǔ)句,繼續(xù)下一次循環(huán)for(i=0;i<5;i++){c=getchar();if(c==’\n’)continue;putchar(c);}輸入:abc↙123↙輸出:abc1第10頁(yè)/共28頁(yè)例:輸入m,判斷m是否為素?cái)?shù)(質(zhì)數(shù))

分析:除了1和m,不能被其他數(shù)整除

m%2%3%4%5……%(m-1)

n=m-1;for(i=2;i<=n;i++)if(m%i==0)break;if(i>n)printf(“%d”,m);elseprintf(“no\n”);第11頁(yè)/共28頁(yè)例:輸入m,判斷m是否為素?cái)?shù)(質(zhì)數(shù))

分析:除了1和m,不能被其他數(shù)整除

m%2%3%4%5……%(m-1)

n=m-1;for(i=2;i<=n;i++)if(m%i==0)break;if(i>n)printf(“%d”,m);elseprintf(“no\n”);sqrt(m)第12頁(yè)/共28頁(yè)多重循環(huán)(循環(huán)嵌套)注:循環(huán)嵌套均是大循環(huán)嵌套小循環(huán)絕對(duì)不允許循環(huán)體交叉

break只能跳出當(dāng)層while(條件)語(yǔ)句;do

語(yǔ)句;while(條件);for(exp1;exp2;exp3)

語(yǔ)句;第13頁(yè)/共28頁(yè)多重循環(huán)(循環(huán)嵌套)例:輸出100~200間所有素?cái)?shù)#include<stdio.h>main(){intm,n,i;for(m=100;m<=200;m++){n=m-1;for(i=2;i<=n;i++)if(m%i==0)break;if(i>n)printf("%4d",m);}}第14頁(yè)/共28頁(yè)輸出以下圖形21個(gè)空格□□□□□□□□□□□□□□□□□□□□□1□□□□□□□□□□□□□□□□□□□2□□□2□□□□□□□□□□□□□□□□□3□□□3□□□3□□□□□□□□□□□□□□□4□□□4□□□4□□□4□□□□□□□□□□□□□5□□□5□□□5□□□5□□□5#include<stdio.h>main(){inti,j,k;i=1;while(i<=5){for(j=1;j<=20-2*i;j++)printf("");for(k=1;k<=i;k++)printf("%4d",i);printf("\n");i++;}}第15頁(yè)/共28頁(yè)數(shù)組

一維數(shù)組二維數(shù)組字符數(shù)組第16頁(yè)/共28頁(yè)數(shù)組的概念問(wèn)題:輸入3個(gè)整數(shù)后再將它們按輸入順序的相反順序輸出

int

a1、a2、a3

輸入300個(gè)整數(shù)后再將它們按輸入順序的相反順序輸出

ints[300];s[0]、s[1]……s[299]

數(shù)組:相同類(lèi)型數(shù)據(jù)的有序集合;在內(nèi)存中連續(xù)存放優(yōu)點(diǎn):表述簡(jiǎn)潔,可讀性高;便于使用循環(huán)結(jié)構(gòu)特點(diǎn):數(shù)組的大小必須是確定的;數(shù)組中元素的類(lèi)型必須相同s01299……s[0]s[1]s[299]第17頁(yè)/共28頁(yè)一維數(shù)組的定義(先定義,后使用)定義:

[存儲(chǔ)類(lèi)別]類(lèi)型名數(shù)組名[數(shù)組長(zhǎng)度]類(lèi)型名:數(shù)組元素的類(lèi)型數(shù)組名:數(shù)組的名稱(chēng)數(shù)組長(zhǎng)度:常量表達(dá)式,給定數(shù)組的大小inta[10];數(shù)組地址:&a[0]或a#defineN5charname[N];intb[7+1];intn=5;charname[n];a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]第18頁(yè)/共28頁(yè)一維數(shù)組元素的引用數(shù)組元素的引用:數(shù)組名[下標(biāo)]下標(biāo):整型表達(dá)式取值范圍:[0,數(shù)組長(zhǎng)度-1]例:inta[10];

a[0]、a[1]、……、a[9]下標(biāo)不要越界,不能使用a[10]注:數(shù)組元素的使用方法與同類(lèi)型的變量相同第19頁(yè)/共28頁(yè)一維數(shù)組元素的引用例:設(shè)inta[10];,則給數(shù)組元素a[0]賦值1如何實(shí)現(xiàn),輸出數(shù)組元素a[0]的值如何實(shí)現(xiàn)呢?給每個(gè)數(shù)組元素輸入值如何實(shí)現(xiàn),輸出所有數(shù)組元素的值如何實(shí)現(xiàn)呢?P109注:數(shù)組元素的使用方法與同類(lèi)型的變量相同第20頁(yè)/共28頁(yè)在定義數(shù)組時(shí)給初值

inta[5]={1,2,3,4,5};inta[]={1,2,3,4,5};inta[5]={1,2};inta[5];

inta[5]={1,2,3,4,5,6};一維數(shù)組的初始化a[3]的值?第21頁(yè)/共28頁(yè)例:用數(shù)組計(jì)算fibonacci數(shù)列的前20個(gè)數(shù)的和,并按

每行打印5個(gè)數(shù)的格式輸出數(shù)列,然后輸出和值。

11235813……

用數(shù)組

f[0]=f[1]=1f[i]=f[i-1]+f[i-2](2<=i<=19)

if((i+1)%5==0)printf(“\n”);第22頁(yè)/共28頁(yè)#include<stdio.h>voidmain(){ intf[20],sum=0,i; f[0]=1; f[1]=1; for(i=2;i<20;i++) f[i]=f[i-1]+f[i-2]; for(i=0;i<20;i++) { printf("%4d",f[i]); if((i+1)%5==0)printf("\n"); sum=sum+f[i]; } printf("sum=%d",sum);}intf[20]={1,1},sum=0,i;第23頁(yè)/共28頁(yè)將數(shù)組a中存放的10個(gè)數(shù)按顛倒的順序重新存放main(){inta[10]={26,21,29,85,76,25,30,50,44,60};inti,j,temp;i=0;j=9;while(i<j){temp=a[i];a[i]=a[j];a[j]=temp;i++;j--;}for(i=0;i<10;i++)printf("%4d",a[i]);printf("\n");}運(yùn)行結(jié)果如下:

60445030257685292126

ij第24頁(yè)/共28頁(yè)輸入n個(gè)數(shù),用“冒泡法”將它們按從小到大的次序排序并輸出。#defineN5main(){inta[N],i,j,temp;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(a[j]>a[j+1]) {temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}printf("\n");for(i=0;i<N;i++)printf("%4d",a[i]);printf("\n");}a[0]a[4]a[3]a[2]a[1]76394初始狀態(tài)46397第一趟第1次的結(jié)果46397第一趟第2次的結(jié)果46937第一趟第3次的結(jié)果49637第一趟第4次的結(jié)果a[0]a[4]a[3]a[2]a[1]76394初始狀態(tài)49637第一趟的結(jié)果49763第二趟的結(jié)果39764第三趟的結(jié)果39764第四趟的結(jié)果第25頁(yè)/共28頁(yè)輸入n個(gè)數(shù),用“選擇法”將它們按從小到大的次序排序并輸出。a[0]a[4]a[3]a[2]a[1]7p6394初始狀態(tài)76394p第一趟第1次的結(jié)果76394p第一趟第2次的結(jié)果763p94第一趟第3次的結(jié)果763p94第一趟第4次的結(jié)果a[0]a[4]a[3]a[2]a[1]36794初始狀態(tài)36794p第二趟初始狀態(tài)36794p第二趟第1次的結(jié)果36794p第二趟第2次的結(jié)果36794p第二趟第3次的結(jié)果a[0]a[4]a[3]a[2]a[1]763

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論