C標(biāo)準(zhǔn)庫(kù)中并沒(méi)有循環(huán)函數(shù)的說(shuō)法,只有三種循環(huán)語(yǔ)句:for語(yǔ)句和while語(yǔ)句,和do-while循環(huán)結(jié)構(gòu)。
成都創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、電商網(wǎng)站制作開(kāi)發(fā)、成都小程序開(kāi)發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
for循環(huán)的一般語(yǔ)法格式為:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
循環(huán)體
}
其中,表示式可以省略,但是分號(hào)不可省略。
while語(yǔ)句的一般表達(dá)式為:
while(表達(dá)式)
{
循環(huán)體
}
do while 結(jié)構(gòu)
do
{
循環(huán)體
}while( 表達(dá)式 )
實(shí)例:
1.for循環(huán)
#includestdio.h
int main(void)
{
int i,j,k;
j=k=2;
printf("ijk\n");
for(i=0;i2;i++){
printf("%d%d%d\n",i,j,k);
}
return0;
}
2.while循環(huán)
#includestdio.h
int main(void)
{
int i=3;
j=k=2;
while(i0){
printf("%d%d%d\n",i,j,k);
}
return0;
}
3.do while循環(huán)
#includestdio.h
int main(void)
{
int i=3;
j=k=2;
do{
printf("%d%d%d\n",i,j,k);
}while(i0)
return0;
}
沒(méi)有收到返回值的原因
#includestdio.h
int
fun
(int
lim,int
aa[10])
{
int
i,j,k=0;
for(i=2;i=lim;i++)
{
for(j=2;ji;j++)
if(i%j==0)
break;
if(j=i)
aa[k++]=i;
}
return
k;
}
main
(
)
{
int
aa[10];
int
lim=10,k=0;
k=fun(lim,aa);//就是這里,要把函數(shù)返回值賦值給k,才行,主函數(shù)的k和fun函數(shù)的k是完全兩個(gè)東西
printf("%d\n",k);
}
1.for語(yǔ)句的一般格式
for([變量賦初值];[循環(huán)繼續(xù)條件];[循環(huán)變量增值])
{
循環(huán)體語(yǔ)句組;}
2.for語(yǔ)句的執(zhí)行過(guò)程
執(zhí)行過(guò)程如圖5-1所示。
(1)求解“變量賦初值”表達(dá)式。
(2)求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值非0,執(zhí)行(3);否則,轉(zhuǎn)至(4)。
(3)執(zhí)行循環(huán)體語(yǔ)句組,并求解“循環(huán)變量增值”表達(dá)式,然后轉(zhuǎn)向(2)。
(4)執(zhí)行for語(yǔ)句的下一條語(yǔ)句。
3.說(shuō)明
(1)“變量賦初值”、“循環(huán)繼續(xù)條件”和“循環(huán)變量增值”部分均可缺省,甚至全部缺省,但其間的分號(hào)不能省略。
(2)當(dāng)循環(huán)體語(yǔ)句組僅由一條語(yǔ)句構(gòu)成時(shí),可以不使用復(fù)合語(yǔ)句形式,如上例所示。
(3)“循環(huán)變量賦初值”表達(dá)式,既可以是給循環(huán)變量賦初值的賦值表達(dá)式,也可以是與此無(wú)關(guān)的其它表達(dá)式(如逗號(hào)表達(dá)式)。
例如,for(sum=0;i=100;i++)
sum
+=
i;
for(sum=0,i=1;i=100;i++)
sum
+=
i;
(4)“循環(huán)繼續(xù)條件”部分是一個(gè)邏輯量,除一般的關(guān)系(或邏輯)表達(dá)式外,也允許是數(shù)值(或字符)表達(dá)式。
冒泡排序的循環(huán)寫法有問(wèn)題,應(yīng)將:for (j=0; j=i; j++)
改為:for (j=0; j2-i; j++)
因?yàn)樵诘谝淮窝h(huán)中,不斷判斷相鄰兩數(shù),最終將最小數(shù)交換到最后,即a[2]的位置
在第二次循環(huán)中,再將a[2]之前數(shù)中的最小數(shù)交換到a[1]的位置,此時(shí)數(shù)組已降序排列
因此對(duì)于循環(huán)i(從0開(kāi)始),每次都將a[0]~a[2-i]中的最小數(shù)交換到a[2-i]的位置
又判斷相鄰數(shù)用到了j+1,所以需要滿足j+1=2-i,即j=1-i,也可寫為j2-i
因此j從0開(kāi)始,到1-i 結(jié)束,改為for (j=0; j2-i; j++)即可
修改后的代碼和運(yùn)行結(jié)果如下:
輸出正確,如果幫到你,望采納~