我們在使用C語言編寫程序,特別是使用函數(shù)遞歸時經(jīng)常會遇到編譯器報錯“用于調用的參數(shù)太少”,如圖:
站在用戶的角度思考問題,與客戶深入溝通,找到古丈網(wǎng)站設計與古丈網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋古丈地區(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次方的程序代碼??此茮]有什么問題,但如果你原封不動的將該段代碼放在編譯器運行時卻會導致編譯器報錯,如圖:
然而問題就出在第 7行代碼:
return x * power(y-1);
注意,power函數(shù)在定義時是創(chuàng)建了兩個形式參數(shù)的,即x和y:
int power(int x,int y)
那么在后續(xù)調用power函數(shù)時就需要傳給它兩個參數(shù)才行,而第七行代碼明顯只傳給了power函數(shù)一個參數(shù),因此會導致編譯器報錯“用于調用的參數(shù)太少”。
在搞清楚了編譯器為何會報錯之后,我們的解決方法也非常簡單,即,將原代碼改為:
return x * power(x,y-1);
這樣就確保了在調用函數(shù)時會傳給power函數(shù)兩個參數(shù)供其使用,就可以防止編譯器報錯。
當然,如果你在定義函數(shù)時創(chuàng)建了三個甚或是更多的形式參數(shù),那么就請務必在后續(xù)調用該函數(shù)時傳給它數(shù)量相同的參數(shù)供函數(shù)使用,這樣就能保證編譯器不會報錯啦。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
名稱欄目:C語言有關“函數(shù)用于調用的參數(shù)太少”問題解決辦法-創(chuàng)新互聯(lián)
轉載來于:http://aaarwkj.com/article26/gjgcg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、網(wǎng)站維護、做網(wǎng)站、虛擬主機、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)