C語言有關(guān)“函數(shù)用于調(diào)用的參數(shù)太少”問題解決辦法-創(chuàng)新互聯(lián)

我們在使用C語言編寫程序,特別是使用函數(shù)遞歸時經(jīng)常會遇到編譯器報(bào)錯“用于調(diào)用的參數(shù)太少”,如圖:

站在用戶的角度思考問題,與客戶深入溝通,找到古丈網(wǎng)站設(shè)計(jì)與古丈網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋古丈地區(qū)。

那么遇到這種情況我們該如何解決呢?


首先以下面一段代碼為例向大家解釋問題到底出在哪里:

#define _CRT_SECURE_NO_WARNINGS 1
#includeint power(int x,int y) 
{
	if (y>1) 
	{
		return x * power(y-1);
	}
	else 
	{
		return x;
	}
}

int main()
{
	int n = 0;
	int k = 0;
	scanf("%d %d", &n,&k);
	printf("%d",power(n, k));

	return 0;
}

如圖,這是一段使用函數(shù)遞歸的方式求解n的k次方的程序代碼??此茮]有什么問題,但如果你原封不動的將該段代碼放在編譯器運(yùn)行時卻會導(dǎo)致編譯器報(bào)錯,如圖:

然而問題就出在第 7行代碼:

return x * power(y-1);

注意,power函數(shù)在定義時是創(chuàng)建了兩個形式參數(shù)的,即x和y:

int power(int x,int y)

那么在后續(xù)調(diào)用power函數(shù)時就需要傳給它兩個參數(shù)才行,而第七行代碼明顯只傳給了power函數(shù)一個參數(shù),因此會導(dǎo)致編譯器報(bào)錯“用于調(diào)用的參數(shù)太少”。


在搞清楚了編譯器為何會報(bào)錯之后,我們的解決方法也非常簡單,即,將原代碼改為:

return x * power(x,y-1);

這樣就確保了在調(diào)用函數(shù)時會傳給power函數(shù)兩個參數(shù)供其使用,就可以防止編譯器報(bào)錯。

當(dāng)然,如果你在定義函數(shù)時創(chuàng)建了三個甚或是更多的形式參數(shù),那么就請務(wù)必在后續(xù)調(diào)用該函數(shù)時傳給它數(shù)量相同的參數(shù)供函數(shù)使用,這樣就能保證編譯器不會報(bào)錯啦。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:C語言有關(guān)“函數(shù)用于調(diào)用的參數(shù)太少”問題解決辦法-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://bm7419.com/article26/gjgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、做網(wǎng)站、虛擬主機(jī)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)