2011-03-31 145 views
0

這是我第一年學習I.T.和c + +所以我沒有太多的任何知識在c + +。問題是關於函數調用。需要幫助函數調用

函數標題是:

bool insure(int age, bool smoker) 

我的任務是記下正確的函數調用,並聲明所有的,我將在調用語句中使用的變量。

到目前爲止,這是我想出來的:

#include <iostream> 
using namespace std; 

bool insure(int age, bool smokers) 
{ 
    bool ret; 
} 
int main() 
{ 
    int age; 
    bool isSmoker; 
    bool ret; 

    cout << "Enter your age: "; 
    cin >> age; 
    ret = insure(age, isSmoker); 

    return 0; 
} 

我想知道,如果這個計劃是正確的,或者如果我做錯了。在此先感謝

+0

當你運行它時發生了什麼? – gregg 2011-03-31 16:17:47

回答

7

您沒有從insure返回任何東西,並且您將它傳遞給一個未初始化的變量(isSmoker)。而且您不驗證輸入是否有效:如果用戶輸入他的年齡的「abc」,會發生什麼情況。

+0

很好的提及錯誤處理。我認爲他總是假定正確的輸入。 – Ilkka 2011-03-31 15:11:03

1

我看不出有什麼根本的太不對的地方,雖然:

  1. 你不從insure返回任何東西。這是設計嗎?也許你想添加return ret

  2. 您沒有定義任何變量的起始值。這是不好的形式,可能會導致未定義的行爲。

1

該任務聽起來像是要將bool insure(int age, bool smoker)作爲黑盒子並顯示如何調用它。所以我想你需要爲自己回答的第一個問題是你是否需要實際編寫insure的定義,或者只需說明你將如何使用該函數。一旦你解決了這個問題,

  • insure需要多少變量和什麼類型的變量?
  • insure返回什麼?您如何存儲它?
  • 你如何設置/初始化你必須使用的變量來調用它,並保持該值是返回?
  • 你應該做什麼樣的錯誤檢查以確保你將「好」值傳遞給insure? (貴覆蓋類錯誤檢查和錯誤處理了嗎?)
2
#include <iostream> 
using namespace std; 

bool insure(int age, bool smokers) 
{   
    if(age>=25&&smokers==true)return true; 
    else return false; 
} 

int main() 
{   
    int age=25; 
    bool isSmoker=true; 
    bool ret; 

    cout << "Enter your age: "; 
    cin >> age; 
    ret = insure(age, isSmoker); 
    cout<<"Insure:"<<ret; 

    return 0; 
} 

該代碼塊寫入假設保險是爲年齡在25歲以上,吸菸的人真的。您可以更改insure(age,smokers)函數內部的邏輯。