版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.1while語(yǔ)句5.2do-while語(yǔ)句5.3for語(yǔ)句5.4循環(huán)的嵌套5.5break、continue和goto語(yǔ)句5.6程序舉例第5講循環(huán)結(jié)構(gòu)程序設(shè)計(jì)2C語(yǔ)言有while、do-while、for三種循環(huán)結(jié)構(gòu)語(yǔ)句。前兩個(gè)稱(chēng)為條件循環(huán),即根據(jù)條件來(lái)決定是否繼續(xù)循環(huán);后一個(gè)稱(chēng)為計(jì)數(shù)循環(huán),即根據(jù)設(shè)定的執(zhí)行次數(shù)來(lái)執(zhí)行循環(huán)。5.1while語(yǔ)句及其循環(huán)結(jié)構(gòu)while語(yǔ)句和格式及執(zhí)行過(guò)程:格式:while(表達(dá)式)
語(yǔ)句執(zhí)行過(guò)程:先計(jì)算表達(dá)式之值,若為非0(即條件成立),執(zhí)行后面的語(yǔ)句(稱(chēng)之為循環(huán)體)之后,再計(jì)算表達(dá)式之值進(jìn)行判斷,如此多次重復(fù)執(zhí)行循環(huán)體;若表達(dá)式之值為0(即條件不成立),跳出循環(huán)體語(yǔ)句,繼續(xù)向下執(zhí)行。while語(yǔ)句的流程圖表達(dá)式語(yǔ)句(循環(huán)體)Y(非0)N(0)while(表達(dá)式)語(yǔ)句例1求1—100之間所有整數(shù)的和i<=100sum+=i;/*累加*/i+=1;/*計(jì)數(shù)器加1*/Y(非0)N(0)i=1;sum=0;printf("i=%d,sum=%d\n",i,sum);求1—100之間整數(shù)和的程序main(){inti=1,sum=0;while(i<=100){sum+=i;i+=1;}printf("i=%d,sum=%d\n",i,sum);}這是一個(gè)while語(yǔ)句想一想,語(yǔ)句sum+=i;和語(yǔ)句i+=1;能否改變位置?為什么?想一想,如果在while語(yǔ)句之前對(duì)變量sum賦初值為1,是否可以?程序的哪些地方應(yīng)作相應(yīng)的改動(dòng)?求1—100之間整數(shù)和的程序運(yùn)行過(guò)程main(){inti=1,sum=0;while(i<=100){sum+=i;i+=1;}printf("i=%d,sum=%d\n",i,sum);}這是一個(gè)while語(yǔ)句程序執(zhí)行的過(guò)程和結(jié)果如下:i=101,sum=5050注意:循環(huán)結(jié)束后,變量i的值一定大于100。想想這樣的一段循環(huán)語(yǔ)句的執(zhí)行結(jié)果:i=1;while(i<=100)putchar(‘*’);i++;這個(gè)循環(huán)永遠(yuǎn)不會(huì)結(jié)束,因?yàn)檠h(huán)控制變量i沒(méi)有在循環(huán)體內(nèi)被改變,i++;不屬于循環(huán)體。應(yīng)該改為:i=1;while(i<=100){putchar(‘*’);i++;}
循環(huán)語(yǔ)句中一定要注意表達(dá)式的值是否能在循環(huán)執(zhí)行過(guò)程中被改變,以免造成死循環(huán)。5.2do-while語(yǔ)句及其循環(huán)結(jié)構(gòu)do—while語(yǔ)句和格式及執(zhí)行過(guò)程:格式:do語(yǔ)句while(表達(dá)式);執(zhí)行過(guò)程:先執(zhí)行語(yǔ)句(稱(chēng)之為循環(huán)體),
然后計(jì)算表達(dá)式之值,若為非0(即條件成立),再執(zhí)行語(yǔ)句(循環(huán)體)后計(jì)算表達(dá)式之值,如此多次重復(fù)執(zhí)行循環(huán)體并判斷條件;若表達(dá)式之值為0(即條件不成立),結(jié)束循環(huán),繼續(xù)向下執(zhí)行。do—while語(yǔ)句的流程圖表達(dá)式語(yǔ)句(循環(huán)體)Y(非0)N(0)注意:while循環(huán)語(yǔ)句與do-while循環(huán)語(yǔ)句的區(qū)別。這是一個(gè)do-while語(yǔ)句用do-while語(yǔ)句求100以?xún)?nèi)正整數(shù)的和main(){inti=1,sum=0;do{sum+=i;i+=1;}while(i<=100);printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050從鍵盤(pán)上輸入10個(gè)整數(shù),求總和及平均值main(){intx,sum=0,i=1;floataver;while(i<=10){scanf("%d",&x);sum+=x;i++;}aver=sum/10.0;printf("sum=%d,aver=%.2f\n",sum,aver);}5.3for語(yǔ)句格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
語(yǔ)句執(zhí)行:(1)先求解表達(dá)式1的值。
(2)再求解表達(dá)式2的值,若值為非0(條件成立),則執(zhí)行語(yǔ)句(循環(huán)體)后執(zhí)行下面的(3);若表達(dá)式2的值為0(條件不成立),則轉(zhuǎn)向(5)。
(3)求解表達(dá)式3的值。
(4)轉(zhuǎn)回執(zhí)行(2)。
(5)執(zhí)行for語(yǔ)句后面的語(yǔ)句。for語(yǔ)句執(zhí)行流程圖表達(dá)式2語(yǔ)句(循環(huán)體)Y(非0)N(0)表達(dá)式1表達(dá)式3for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
語(yǔ)句求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;for(i=1,sum=0;i<=100;i++)sum+=i;printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;
for(;i<=100;i++)sum+=i;printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050表達(dá)式1可缺省,放在循環(huán)之前,但for語(yǔ)句中的第一個(gè)分號(hào)不能省略i=1;sum=0;求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;
for(;i<=100;)sum+=i;printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050表達(dá)式3可缺省,放在循環(huán)體之中,但for語(yǔ)句中的第二個(gè)分號(hào)不能省略i=1;sum=0;i++;求1~100之間的整數(shù)之和(for語(yǔ)句)main(){inti,sum;
for(i=1,sum=0;i<=100;sum+=i,i++)
printf("i=%d,sum=%d\n",i,sum);}i=101,sum=5050循環(huán)體中的內(nèi)容可以放在表達(dá)式3中,但要在花括號(hào)的后面加一個(gè)空語(yǔ)句;for語(yǔ)句的一般格式在for語(yǔ)句中,一般表達(dá)式1用來(lái)為變量賦初值;表達(dá)式2一般用來(lái)設(shè)置循環(huán)結(jié)束條件;表達(dá)式3一般用于循環(huán)變量增值。故for語(yǔ)句的一般格式為:for(變量賦初值;執(zhí)行循環(huán)體的條件;循環(huán)變量增值)
語(yǔ)句例:求1/100+2/99+…+1分析:用變量i從1開(kāi)始循環(huán),每次增加1;用變量j從100開(kāi)始循環(huán),每次減少1。累加i/j的值到s中。當(dāng)i>j時(shí)結(jié)束循環(huán)(即i<=j時(shí)繼續(xù)循環(huán))。最后輸出s。#include<stdio.h>main(){inti,j;floats=0;for(i=1,j=100;i<=j;i++,j--)s=s+(float)i/j;printf(“\ns=%f”,s);}例:任意輸入一個(gè)自然數(shù),把它反序輸出。(如:原數(shù)為123,輸出321)。分析:此題不確定循環(huán)執(zhí)行的次數(shù),也不涉及一個(gè)規(guī)律變化的變量,一般用while或do-while來(lái)編寫(xiě)。又由于第一次就要判斷輸入的是否是自然數(shù),通常用while來(lái)實(shí)現(xiàn)。算法步驟如下:1.定義整型變量a用于存儲(chǔ)輸入的自然數(shù),定義t初值為0用于存放a的反序數(shù),定義i用于依次存放求出的a的每一位的數(shù)值。2.輸入一個(gè)自然數(shù)賦值給變量a3.若a>0,執(zhí)行第4步,否則執(zhí)行第7步4.i=a%105.t=t*10+i6.a=a/10,并返回第3步7.輸出t程序:#include<stdio.h>main(){longa,i,t=0;scanf(“%ld”,&a);while(a>0){i=a%10;t=t*10+i;a=a/10;}printf(“\n%ld”,t);}1、有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是A)5B)24C)32D)402006-92、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);
while(i++);printf("%d\n",i);其輸出結(jié)果是A)0,0B)0,1C)1,1D)程序進(jìn)入無(wú)限循環(huán)3、有以下程序
#include<stdio.h>
main()
{int
y=9;
for(;y>0;y--)
if(y%3==0)
printf("%d",--y);
}程序的運(yùn)行結(jié)果是A)741
B)963
C)852
D)8754212007-92007-94、以下程序的輸出結(jié)果是()#include<stdio.h>main(){
intn=12345,
d;
while(n!=0){d=n%10;printf("%d",d);n/=10;}}5、有以下程序段,且變量已正確定義和賦值for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);請(qǐng)?zhí)羁?使下面程序段的功能與之完全相同s=1.0;k=1;while(________){s=s+1.0/(k*(k+1));_______;}printf("s=%f\n\n",s);2007-9543212007-9k<=nk++6、以下程序的輸出結(jié)果是()#include<stdio.h>main(){inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");}2007-9ACE7、有以下程序#include<stdio.h>main(
){intx=8;
for(
;
x>0;
x--){if(x%3){
printf("%d,"
,
x--);continue;}
printf("%d.",--x);}}
程序運(yùn)行的結(jié)果是
A)7,4,2,B)8,7,5,2,C)9,7,6,4,
D)8,5,4,2,2008-48、以下不構(gòu)成無(wú)限循環(huán)的語(yǔ)句或語(yǔ)句組是A)n=0;B)n=0;do{++n;}while(n<=0);while(1){n++;}C)n=10;
D)for(n=0,i=1;
;i++)n+=i;while(n);{n--;}15、若有定義:int
k;,以下程序段的輸出結(jié)果是(##2##4)
for(k=2;k<6;k++,k++)
printf("##%d",k);2008-49、有以下程序
#include
<stdio.h>
main()
{
int
i=5;
do
{if(i%3==1)
if(i%5==2)
{
printf("*%d",i);
break;
}
i++;
}while(i!=0);
printf("\n");
}程序的運(yùn)行結(jié)果是A)*7
B)*3*5
C)*5
D)*2*62008-910、設(shè)變量已正確定義,以下不能統(tǒng)計(jì)出一行中輸入字符個(gè)數(shù)(不包含回車(chē)符)的程序段是A)n=0;while((ch=getchar())!='\n')n++;B)n=0;while(getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);2009-311、有以下程序#include
<stdio.h>main(){
char
c1,c2;
scanf("%c",&c1);
while(c1<65||c1>90)
scanf("%c",&c1);
c2=c1+32;
printf("%c,%c\n",c1,c2);}程序運(yùn)行輸入65回車(chē)后,能否輸出結(jié)果,結(jié)束運(yùn)行(請(qǐng)回答能或不能)【】2009-3不能12、以下程序運(yùn)行后的輸出結(jié)果是【】#include<stdio.h>main(){
int
k=1,s=0;
do{
if((k%2)!=0)
continue;
s+=k;k++;
}while(k>10);
printf("s=%d\n",s);}
2009-3s=013、下列程序運(yùn)行時(shí),若輸入labcedf2df<回車(chē)>輸出為【
】#include<stdio.h>main(){
chara=0,ch;while((ch=getch())!='\n'){if(a%2!=0
&&
(ch>='a'&&ch<='z'))ch=ch-'a'+'A';
a++;putchar(ch);}printf("\n");}
2009-31AbCeDf2dF14、有以下程序#include<stdio.h>main(){
int
c=0,k;
for(k=1;k<3;k++)
switch(k)
{
default:c+=k;
case
2:c++;break;
case
4:c+=2;break;
}
printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是A)3B)5C)7D)92009-915、有以下程序#include<stdio.h>main(){
int
n=2,k=0;
while(k++&&n++>2);
printf("%d
%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是A)0
2B)1
3C)5
7D)1
22009-916、以下程序運(yùn)行后的輸出結(jié)果是【】#include
<stdio.h>main(){
int
a=1,b=7;
do{
b=b/2;a+=b;
}
while
(b>1);
printf("%d\n",a);}2009-9517、有一下程序#include
<stdio.h>main(){
int
f,f1,f2,i;
f1=0;f2=1;
printf("%d
%d
",f1,f2);
for(i=3;i<=5;i++)
{
f=f1+f2;
printf("%d",f);
f1=f2;
f2=f;
}
printf("\n");}程序運(yùn)行后的輸出結(jié)果是【01123】
2009-91、有以下程序#include<stdio.h>
main(){inta=l;b=2;
for(;a<8;a++){b+=a;a+=2;}
printf("%d,%d\n",a,b);
}程序運(yùn)行后的輸出結(jié)果是
A)9,18
B)8,11
C)7,11
D)10,14
2010年3月1、有以下程序
#include<stdio.h>
main(){inta=1,b=2;
while(a<6){b+=a;a+=2;b%=10;}
printf("%d,%d\n",a,b);
}程序運(yùn)行后的輸出結(jié)果是
A)5,11
B)7,1
C)7,11
D)6,12010年9月2、有以下程序
#include<stdio.h>
main()
{inty=10;
while(y--);
printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是
A)y=0
B)y=-1
C)y=1
D)while構(gòu)成無(wú)限循環(huán)2010年9月1、有以下程序main(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運(yùn)行時(shí),若輸入123450<回車(chē)>,則輸出結(jié)果是A)6566456B)66656C)66666D)66666562011年3月2、有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是A)for循環(huán)語(yǔ)句固定執(zhí)行8次B)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行2011年3月3、若i和k都是int類(lèi)型變量,有以下for語(yǔ)句for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語(yǔ)句執(zhí)行情況的敘述中正確的是A)循環(huán)體執(zhí)行兩次B)循環(huán)體執(zhí)行一次C)循環(huán)體一次也不執(zhí)行D)構(gòu)成無(wú)限循環(huán)2011年3月4、有以下程序#include<stdio.h>main(){charb,c;inti;b='a';c='A';for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef2011年3月4、有以下程序段#include<stdio.h>main(){…while(getchar()!='\n');…}以下敘述中正確的是A)此while語(yǔ)句將無(wú)限循環(huán)B)getchar()不可以出現(xiàn)在while語(yǔ)句的條件表達(dá)式中C)當(dāng)執(zhí)行此while語(yǔ)句時(shí),只有按回車(chē)鍵程序才能繼續(xù)執(zhí)行D)當(dāng)執(zhí)行此while語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行2011年3月5、有以下函數(shù)voidprt(charch,intn){inti;for(i=1;i<=n;i++)printf(i%6!=0?"%c“:"%c\n",ch);}執(zhí)行調(diào)用語(yǔ)句prt('*',24);后,函數(shù)共輸出了【】行*號(hào)。2011年3月41、有以下程序main(){inta=7;
while(a--);
printf("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A)-1B)0C)1D)72、以下程序運(yùn)行后的輸出結(jié)果是【】。main(){inti,j;
for(i=6;i>3;i--)j=i;
printf("%d%d\n",i,j);}2011年9月A343、以下程序運(yùn)行后的輸出結(jié)果是【】。
main(){chara;
for(a=0;a<15;a+=5){putchar(a+'A');}printf("\n");
}2011年9月AFK5.4循環(huán)嵌套一個(gè)循環(huán)體中又包含了另一個(gè)完整的循環(huán)結(jié)構(gòu),叫做循環(huán)的嵌套。三種循環(huán)結(jié)構(gòu)可以互相嵌套。循環(huán)嵌套的執(zhí)行過(guò)程是:外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行一個(gè)全過(guò)程。循環(huán)嵌套舉例:輸出一個(gè)圖形main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=3;j++)printf("*");printf("\n");}}************/*外循環(huán)控制輸出圖形的行數(shù)*//*內(nèi)循環(huán)控制每行輸出的數(shù)量*/循環(huán)嵌套語(yǔ)句第一個(gè)語(yǔ)句是循環(huán)語(yǔ)句,實(shí)現(xiàn)輸出3個(gè)*號(hào)第二個(gè)語(yǔ)句是簡(jiǎn)單語(yǔ)句,輸出一個(gè)換行符main(){printf("***\n");printf("***\n");printf("***\n");printf("***\n");}main(){inti,j;for(i=1;i<=4;i++)printf("***\n");}循環(huán)嵌套舉例:輸出一個(gè)圖形main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=i;j++)printf("*");printf("\n");}}**********/*外循環(huán)控制輸出圖形的行數(shù)*//*內(nèi)循環(huán)控制每行輸出的數(shù)量*/循環(huán)嵌套語(yǔ)句第一個(gè)語(yǔ)句是循環(huán)語(yǔ)句,實(shí)現(xiàn)輸出若干個(gè)*號(hào)第二個(gè)語(yǔ)句是簡(jiǎn)單語(yǔ)句,輸出一個(gè)換行符5.5
break語(yǔ)句和continue語(yǔ)句break語(yǔ)句格式:break;功能:提前結(jié)束循環(huán),從循環(huán)體中無(wú)條件跳轉(zhuǎn)到循環(huán)語(yǔ)句后面執(zhí)行。可用于switch語(yǔ)句和循環(huán)結(jié)構(gòu)中。continue語(yǔ)句格式:continue;結(jié)束本次循環(huán),即在本次循環(huán)中,不再執(zhí)行循環(huán)體中continue后面的語(yǔ)句。只能用于循環(huán)結(jié)構(gòu)。break語(yǔ)句的使用#definePI3.14159main(){intr;floatarea;for(r=1;r<=10;r++){area=r*r*PI;if(area>100)break;printf("r=%d\tarea=%.2f\n",r,area);}}計(jì)算半徑為1~10的圓面積,面積大于100時(shí)停止。r:1area:3.14r:2area:12.57r:3area:28.27r:4area:50.27r:5area:78.54r:6area:113.10定義一個(gè)符號(hào)常量PI觀察r和area的值r=1area=3.14r=2area=12.57r=3area=28.27r=4area=50.27r=5area=78.54帶有break;語(yǔ)句的for循環(huán)就有兩個(gè)出口即r>10或者area>100。continue語(yǔ)句的使用輸出1~7之間所有不能被3整除的整數(shù)。main(){intn;for(n=1;n<=7;n++){if(n%3==0)continue;printf("%5d",n);}}n:1觀察n的值n:2n:3n:4n:5n:6n:7n:8124575.6循環(huán)結(jié)構(gòu)程序舉例:
連續(xù)級(jí)數(shù)求和判斷一個(gè)數(shù)是否為素?cái)?shù)求出100~200之間的所有素?cái)?shù)求π的近似值求π的近似值,直到最后一項(xiàng)絕對(duì)值小于10-6π111——=1-——+——-——……4357求π的近似值算法流程圖pi=pi+t;n+=2;s=-s;t=s/n;|t|>=10-6定義變量pi(和),n(分母),s(符號(hào)),t(項(xiàng)值)0→pi,1→n,1→s,1→tYNpi=pi*4;輸出n和pi的值求π的近似值,直到最后一項(xiàng)絕對(duì)值小于10-6π111——=1-——+——-——…4357求π的近似值程序main(){ints=1;longn=1;floatpi=0,t=1;/*s存放符號(hào),n存放分母*/while(
fabs(t)1e-6){pi=pi+t;
n=n+2;s=-s;
t=(float)s/n;}/*實(shí)現(xiàn)s的+1和-1交替出現(xiàn)*/pi=pi*4;printf("pi=%f\n",pi);}/*累加*/>=/*分母加2*/pi=3.141594/*pi存放和,t存放項(xiàng)值*//*計(jì)算下一個(gè)項(xiàng)值*/掌握在循環(huán)體中實(shí)現(xiàn)正負(fù)相間的技巧判斷整數(shù)m是否為素?cái)?shù)素?cái)?shù)即為質(zhì)數(shù),如果一個(gè)整數(shù)只能被1或者它本身整除,這個(gè)數(shù)就稱(chēng)為是素?cái)?shù)。判斷素?cái)?shù)的算法是:
讓m被2~m-1之間所有的整數(shù)整除,如果m能被2~m-1之中的任何一個(gè)整數(shù)整除,則提前結(jié)束循環(huán),此時(shí)m一定不是素?cái)?shù);如果在2~m-1之間不存在能被m整除的整數(shù),則終止循環(huán),此時(shí)循環(huán)變量的值一定大于或者等于m。判斷整數(shù)m是否為素?cái)?shù)算法流程圖定義變量m(被判斷數(shù)),i(循環(huán)變量)輸入m的值N
i<mi=2;NYYm%i==0結(jié)束
i>=m輸出m是素?cái)?shù)YN輸出m不是素?cái)?shù)break;i++;for循環(huán)不是素?cái)?shù)是素?cái)?shù)判斷整數(shù)m是否為素?cái)?shù)程序main(){intm,i;scanf("%d",&m);for(i=2;i<m;i++)if(m%i==0)break;for語(yǔ)句有兩個(gè)出口,i>=m和break;if(i>=m)printf("\n%d是素?cái)?shù)\n",m);elseprintf("\n%d不是素?cái)?shù)\n",m);}循環(huán)結(jié)束后根據(jù)i的值來(lái)決定m是否為素?cái)?shù)判斷整數(shù)m是否為素?cái)?shù)程序2#include<math.h>main(){intm,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;for語(yǔ)句有兩個(gè)出口,i>k和break;if(i>k)printf("\n%d是素?cái)?shù)\n",m);elseprintf("\n%d不是素?cái)?shù)\n",m);}循環(huán)結(jié)束后根據(jù)i的值來(lái)決定m是否為素?cái)?shù)判斷整數(shù)m是否為素?cái)?shù)程序3main(){intm,i,k,flag;scanf("%d",&m);k=sqrt(m);flag=1;for(i=2;i<=k;i++)if(m%i==0){flag=0;break;}if(flag==1)printf("\n%d是素?cái)?shù)\n",m);elseprintf("\n%d不是素?cái)?shù)\n",m);}/*定義變量flag作為標(biāo)志變量*//*變量flag賦初值1*//*如果m是素?cái)?shù),flag賦0*/例:求3~150中所有素?cái)?shù)的和。
算法分析:
1.用變量a從3到150循環(huán),每次值增加12.用變量i從2到a-1循環(huán),每次值增加13.若a%i==0,結(jié)束i的循環(huán),執(zhí)行第4步
4.若i==a,把a(bǔ)累加到s上。
5.輸出s的值
注意:此題中執(zhí)行第4步時(shí)有兩種情況。第一種:在第3步中發(fā)現(xiàn)了滿(mǎn)足a%i==0的情況,直接跳出了i的循環(huán),此時(shí)的i一定是在2到a-1中間的一個(gè)值,而且a不是素?cái)?shù)。第二種:一直沒(méi)有發(fā)現(xiàn)滿(mǎn)足a%i==0的i,在i==a時(shí),不再滿(mǎn)足i循環(huán)的執(zhí)行條件,i循環(huán)結(jié)束,此時(shí)的a是素?cái)?shù)!程序:#include<stdio.h>main(){inta,s=0,i;for(a=3;a<=150;a++){for(i=2;i<a;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024項(xiàng)目融資合同協(xié)議書(shū)
- 2025年度中醫(yī)食療研究與推廣合同4篇
- 2025年度特色餐飲連鎖品牌授權(quán)合同3篇
- 2025年度生態(tài)修復(fù)工程承包商借款合同范本4篇
- 2025年度數(shù)據(jù)中心運(yùn)維外包合同4篇
- 2025年度體育用品代理服務(wù)合同模板4篇
- 2025年度物流車(chē)輛環(huán)保排放檢測(cè)合同4篇
- 2025年度人工智能技術(shù)應(yīng)用與開(kāi)發(fā)合同2篇
- 2024版全新銷(xiāo)售擔(dān)保合同范本下載
- 2025年度新能源汽車(chē)充電站車(chē)位銷(xiāo)售與管理協(xié)議4篇
- 專(zhuān)升本英語(yǔ)閱讀理解50篇
- 施工單位值班人員安全交底和要求
- 中國(guó)保險(xiǎn)用戶(hù)需求趨勢(shì)洞察報(bào)告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場(chǎng)工藝紀(jì)律檢查表
- 醫(yī)院品管圈與護(hù)理質(zhì)量持續(xù)改進(jìn)PDCA案例降低ICU病人失禁性皮炎發(fā)生率
- 新型電力系統(tǒng)研究
- 烘干廠(chǎng)股東合作協(xié)議書(shū)
- 法院服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論