當(dāng)然是在循環(huán)體內(nèi)調(diào)用,如果沒有其他限制條件,循環(huán)一次就調(diào)用函數(shù)一次,直至循環(huán)條件結(jié)束,循環(huán)結(jié)束。
創(chuàng)新互聯(lián)建站技術(shù)團(tuán)隊10余年來致力于為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、成都全網(wǎng)營銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術(shù)團(tuán)隊,先后服務(wù)、推廣了上1000+網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
沒有收到返回值的原因
#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是完全兩個東西
printf("%d\n",k);
}
你說的是遞歸函數(shù)吧?建議你看看這個函數(shù),比較簡單,可以學(xué)習(xí)一下。
long fact(int n)
{
if (n==1)
return 1;
return (fact(n-1))*n;
}
冒泡排序的循環(huán)寫法有問題,應(yīng)將:for (j=0; j=i; j++)
改為:for (j=0; j2-i; j++)
因為在第一次循環(huán)中,不斷判斷相鄰兩數(shù),最終將最小數(shù)交換到最后,即a[2]的位置
在第二次循環(huán)中,再將a[2]之前數(shù)中的最小數(shù)交換到a[1]的位置,此時數(shù)組已降序排列
因此對于循環(huán)i(從0開始),每次都將a[0]~a[2-i]中的最小數(shù)交換到a[2-i]的位置
又判斷相鄰數(shù)用到了j+1,所以需要滿足j+1=2-i,即j=1-i,也可寫為j2-i
因此j從0開始,到1-i 結(jié)束,改為for (j=0; j2-i; j++)即可
修改后的代碼和運(yùn)行結(jié)果如下:
輸出正確,如果幫到你,望采納~