亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

結果顯示too few arguments to function 'su' 但是我參數都給了???

結果顯示too few arguments to function 'su' 但是我參數都給了?。?/h1>
C C++
慕桂英3389331 2022-09-16 12:11:13
#include <stdio.h>#include <stdlib.h>#include <math.h>int su(int x,int i){if(x==0)return 1;else{for(i=2;x%i!=0 && i<=sqrt(x);i++)if(i>sqrt(x))return 1;elsereturn 0;}}int main(){int x;scanf("%d",&x);if (su(x)==1)printf("y");if (su(x)==0)printf("n");return 0;}
查看完整描述

2 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

形參和實參的個數沒有對應上。su函數定義了兩個參數,分別是int x和int i,但是在主函數調用的時候指只調用了一個x。

形參和實參的區別和聯系

1、形參變量只有在函數被調用時才會分配內存,調用結束后,立刻釋放內存,所以形參變量只有在函數內部有效,不能在函數外部使用。

2、實參可以是常量、變量、表達式、函數等,無論實參是何種類型的數據,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參,所以應該提前用賦值、輸入等辦法使實參獲得確定值。

3、實參和形參在數量上、類型上、順序上必須嚴格一致,否則會發生“類型不匹配”的錯誤。當然,如果能夠進行自動類型轉換,或者進行了強制類型轉換,那么實參類型也可以不同于形參類型。

4、函數調用中發生的數據傳遞是單向的,只能把實參的值傳遞給形參,而不能把形參的值反向地傳遞給實參;換句話說,一旦完成數據的傳遞,實參和形參就再也沒有瓜葛了,所以,在函數調用過程中,形參的值發生改變并不會影響實參。

擴展資料

函數調用的本質:

在執行調用一個函數:本質就是通過call指令調用函數在代碼段的地址進行直接調用。在匯編指令可以看到當函數執行完畢,執行ret匯編指令退出函數。其實一個完整的函數調用必定包含call和ret指令。

函數分類:

1、從用戶使用的角度看,函數有兩種,分別為系統函數和用戶自己定義的函數。系統函數又稱庫函數,是由編譯系統提供的,用戶不必自己定義這些函數,可以直接使用它們;用戶自己定義的函數是用于解決用戶的專門需要。

注:庫函數在使用時程序中必須包含相應的頭文件,如,#include《iostream》等。

2、從函數的形式看,函數又分為無參函數和有參函數。無參函數調用時不必給出參數,有參函數調用時要給出參數,在主調函數和被調函數之間有數據傳遞。

查看完整回答
反對 回復 2022-09-21
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

//你的su定義函數有兩個參數,但使用的時候只傳遞了一個x,當然too few了。
//你可以將i的定義放在su的內部,為什么用i作為參數呢??

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int su(int x)
{
if(x==0)
return 1;
else
{
int i;
for(i=2;x%i!=0 && i<=sqrt(x);i++); //這里分號。
if(i>sqrt(x))
return 1;
else
return 0;
}
}
//你的su定義函數有兩個參數,但使用的時候只傳遞了一個x,當然too few了。
//你可以將i的定義放在su的內部,為什么用i作為參數呢??
int main()
{
int x;
scanf("%d",&x);
if (su(x)==1)
printf("y");
if (su(x)==0)
printf("n");
return 0;
}


查看完整回答
反對 回復 2022-09-21
  • 2 回答
  • 0 關注
  • 793 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號