錯誤提示稀奇古怪

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了右江免費(fèi)建站歡迎大家使用!
實(shí)際上是因?yàn)槟愕膍ain函數(shù)返回有問題
main定義為int, 但你結(jié)束的時(shí)候僅僅是return; 成void了。
按慣例return 0;就行
i是一個變量,如果這個變量在一個函數(shù)內(nèi),可以作為函數(shù)的返回值。
return 是返回一個函數(shù)的值。函數(shù)內(nèi)的某個變量可以作為函數(shù)的返回值返回。
但是在函數(shù)外,直接返回某個不在函數(shù)內(nèi)部的變量是不可以的。
比如在main 中。
main()
{
int i ;
return i;
}
這是不行的。返回的是變量的內(nèi)存地址。
#include?stdio.h
//using?namespace?std;
float?x,?y,?z;
float?divide(float?a,?float?b);
int?main(void)
{
printf("\nEnter?two?float?numbers:?\n");
scanf("%d%d",?x,?y);
{
z?=?divide(x,?y);
system("pause");
}
return?0;
}
float?divide(float?a,?float?b)
{
if(b?==?0)
puts("\nThe?second?number?can't?be?evaluated?as?0!?");
//這個情況沒有return??
else
printf("\nThe?value?is?%f",a/b);
//既然是函數(shù),這應(yīng)該用形參,(指針另說)
return?a/b;
}
形參 實(shí)參 搞混了 ?函數(shù)里直接用的全局變量還不是函數(shù)的形參 ? 還有 那個?printf("\nThe value is %f",a/b); 應(yīng)該放到函數(shù)里或者在MAIN里加判斷決定是否輸出,而且divide函數(shù)里只有 ?在Y!=0時(shí)才有返回值 這樣不對 ?
有 else 是
只有 n == 0 return jcjg;返回jcjg 否則不確定返回何值(實(shí)際返回 eax 寄存器的最后一次值)
沒有 else 任何時(shí)候 return jcjg;總是會返回jcjg。
不過沒見過這樣用遞歸的,
像這種簡單計(jì)算,正常都是用迭代處理,不用遞歸的;
只有像樹一類的復(fù)雜的數(shù)據(jù)結(jié)構(gòu),和排序或更復(fù)雜的算法,才用遞歸實(shí)現(xiàn).
int jc(int n)
{
if(n != 0)
{
printf("%d-%d\n",jcjg,n);
jcjg = jcjg * n;
//jc(n - 1);改成
return jc(n - 1);看行不行;
}
else
{
return jcjg;
}
}
除了主函數(shù)以外的三個函數(shù)的返回類型都是void,但是函數(shù)體內(nèi)部卻有返回值,所以錯了,把void改成int就可以了。
本文題目:c語言函數(shù)返回值異常,c語言函數(shù)不返回值
當(dāng)前URL:http://chinadenli.net/article42/hsjihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站制作、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)