2016-01-10 72 views
-3

我是一名初學者,對於將函數調用到程序的主要部分有一點問題。將函數插入主要部分

#include <iostream> 

#include<cmath> 
int getAbsProd(int a, int b) 
{ 
cout<<"Insert integer: "<<endl; 
cin>>a; 
cout<<"Insert another integer: "<<endl; 
cin>>b; 
cout<<"The absolute value of the multiplication is: "<<abs(a*b)<<endl; 
return abs(a*b); 

} 


int main() 
{ 

cout<<getAbsProd(); 
return 0; 
} 

我正在使用codeblocks,無法調用math.h,它建議調用cmath的地方。

+0

變化'COUT << getAbsProd()''到COUT << getAbsProd(1,2)'或類似的東西... –

+1

移動了''的聲明和'b'內部功能。像'int getAbsProd(){int a,b; ''。 – NikolayKondratyev

+0

noob001,如果我的答案奏效,請接受答案,以便這個問題將被關閉 –

回答

0

您的功能getAbsProd需要2個參數:int aint b。你在沒有任何參數的情況下調用它。例如,可通過5兩個ab這樣稱呼它:

int main() 
{ 
    cout << getAbsProd(5, 5); 
    return 0; 
} 
2

編輯:

現在,我讀了你的代碼,就好像你並不需要在你的方法getAbsProd中設置參數。取出int ab所以它看起來是這樣的:

int getAbsProd() 

那你應該是好去!

說明:

參數是你需要在你的方法,如果你打算從main或其他方法調用它的東西,你需要從main提供它的輸入。在你的情況下,你並沒有從你的代碼中自己給出任何輸入,而是調用cin。因此,參數中不需要有(int a, int b),而是在方法本身中將其創建爲局部變量。

int getAbsProd() 
{ 
int a = 0; 
int b = 0; 
cout<<"Insert integer: "<<endl; 
cin>>a; 
cout<<"Insert another integer: "<<endl; 
cin>>b; 
cout<<"The absolute value of the multiplication is: "<<abs(a*b)<<endl; 
return abs(a*b); 

} 

原貼:

您需要提供與它爲了計算值需要的參數的方法。例如,您main方法應該是類似於:

int main() 
{ 

cout<<getAbsProd(1, 2); //you need to have an int a, and an int b 
return 0; 
} 

現在,你的函數應該計算1絕對值(請記住,這是你給你的功能int a),乘以2(第二個參數,你提供的功能,即int b)。

在這種情況下,您的輸出應該是2

欲瞭解更多信息,請查看本教程的功能在C++:

http://www.cplusplus.com/doc/tutorial/functions/

希望這有助於。如果還有其他東西,請隨時發表評論:-)

+0

工作,謝謝。 – noob001

0

我試過你的代碼,發現錯誤。

有兩種可能的解決方案來使您的代碼工作。

解決方案1:該函數

像內聲明getAbsProd()不帶任何參數

和聲明的整數a和b,

int getAbsProd() { 
int a,b; 
cout<<"enter value of a"; 
cin>>a 
. 
. 
return 0; 
} 

解決方案2:如果要聲明函數接受參數,然後向用戶請求main中的數字,然後以'a'和'b'作爲參數調用函數

int main() { 
int a,b; 
cout<<"enter value of a"; 
cin>>a; 
cout<<"enter value of b"; 
cin>>b; 
cout<<getAbsProd(a,b); 
return 0; 
} 

進行這兩個更改中的任何一個,並且您的代碼應該可以工作。

希望幫助, 拉克什·納朗