2016-06-26 13 views
-4

私は学生であり、人が豊かであるかどうかを判断するプログラムを作成する任務があります。私のコードは以下の通りです。私はidentifier "isRich" is undefinedというエラーが出ています。誰かが私が間違っていた場所を見つけ出すのを助けることができます関数を書こうとしている未定義の識別子

#include "stdafx.h" 
#include <iostream> //for input and output 
#include "Cusick Project 5.h" 
using namespace std; 


void calcWealth(int age, long cash, int dependants, long debt) 
{ 

cout << "Please enter your age: "; 
cin >> age; 
cout << "Please enter the amount of cash on hand: "; 
cin >> cash; 
cout << "Please enter the amount of dependents you have: "; 
cin >> dependants; 
cout << "Please enter the amount of money you owe"; 
cin >> debt; 

bool isRich(int *age, long *cash, int *dependants, long *debt); 
{ 
    long trueCash; 
    bool status = false; 

    trueCash = cash - debt; 

    if (dependants == 0) 
    { 
     if (trueCash >= 1000000) 
     { 
      status = true; 
     } 
     else 
      status = false; 
    } 

    else if (age < 40) 
    { 
     trueCash = trueCash - (dependants * 150000); 
     if (trueCash >= 1000000) 
     { 
      status = true; 
     } 
     else 
      status = false; 
    } 

    else if (age > 39 && age < 51) 
    { 
     trueCash = trueCash - (dependants * 75000); 

     if (trueCash >= 1000000) 
     { 
      status = true; 
     } 
     else 
      status = false; 
    } 

    else 
    { 
     trueCash = trueCash - (dependants * 25000); 

     if (trueCash >= 1000000) 
     { 
      status = true; 
     } 
     else 
      status = false; 
    } 
    } 
} 

int main() 
{ 
    int age; 
    long cash; 
    int dependants; 
    long debt; 
    bool status; 

    cout << "Welcome to the wealth indicator..." << endl; 

    calcWealth(age, cash, dependants, debt); 

    if (isRich(status) = true) 
    { 
     cout << "Congratulations! We consider you as being \"rich.\"" <<  endl; 
    } 

    else 
    { 
     cout << "I am sorry! You are not yet \"rich.\"" << endl; 
    } 
} 
+2

ところで、あなたは、あなたの課題の不必要な指示で質問を汚染するべきではありません。 –

+0

不足している '}'と '' isRich'を修正した後、 'isRich'を4つの引数をとって定義しますが、それを1だけ呼び出すことに注意してください。' main'の局所変数も初期化されません'status'は決して設定されないので、他のものは値によって' calcWealth'に渡されます。 – dxiv

+0

あなたのコードをもう一度書き直すよう助言します。書かれた各行の後に '' cout <<」と書いておけば、コンパイルして、何が起こったのか、正しくコンパイルされているのを見てください。実際に作業コードを作成する方法を実際に習得できる方法。 – Logman

答えて

1

isRich()の宣言の後に余分なセミコロンがあります。

...  
bool isRich(int *age, long *cash, int *dependants, long *debt) 
{ 
... 

はまた、あなたが右isRich()の宣言の前に、機能calcWealth()の最後に決算}が欠落しています

あなたのコードではなく、のようになります。

+0

@Jaime、これがあなたの質問に答えるなら、あなたはその質問の横のチェックマークをクリックしてそれを受け入れることができますか? – Alex

+1

コードをコンパイルしようとしましたか?セミコロンの問題を修復するのは大変だ。例えば、彼はポインタとして年齢を渡し、価値のように使用します。 – Logman

+0

@Logmanそれは実際には混乱ですが、セミコロンとクローズドブレースは、彼が求めていたすぐ問題を解決しています。 – Alex

0

マイナスcin文、あなたの最初の数行は

void calcWealth(int age, long cash, int dependants, long debt) 
{ 

// ... 

bool isRich(int *age, long *cash, int *dependants, long *debt); 
{ 

のように見えるが、あなたはcalcWealth内部isRichを宣言起動することはできません。最初の関数が完了したことをコンパイラに伝え、}とする必要があります。

ところでその機能は、あなたがやりたいことをやり遂げません。読み込む値は失われますが、それは別の質問です。

参考のため、コンパイルエラーがある場合は、行番号が付いています。どちらの行が失敗したかを表示しないことで、皆さんにはと推測されています。

+0

情報ありがとうございました - 次回は必ずそれを含めることにします。 – Jaime

関連する問題