0

elseの部分以外はすべて、奇妙な(elseの前に期待される一次式)エラーを発生させます。IMは、ロジックの制限と関係があるかもしれないと考えています。しかし、私はエラーに頭を悩ませているようには見えません。

#include <iostream>

using namespace std;

int main()
{
int numberRegistered = 0;
const double feePerOneThroughFour = 0.0;
const double feePerFiveThroughTen = 0.0;
const double feeElevenOrMore = 0.0;

double moneyOwed = 0.0;

cout << " Enter in the Number of Registered people";
cin >> numberRegistered;

if (numberRegistered <= 0 );
{
cout << " You have entered in either the number 0 or a negative number" ;
}
        else 
             if  (numberRegistered == 1 ) ||  (numberRegistered == 2) || (numberRegistered == 3 ) ||  (numberRegistered == 4) 
             moneyOwed = numberRegistered * feePerOneThroughFour;
             cout << " Money Owed : $ " ;
             cin >> moneyOwed ;

            else if  (numberRegistered == 5 ) ||  (numberRegistered == 6) || (numberRegistered == 7 ) ||  (numberRegistered == 8) || (numberRegistered == 9)  || (numberRegistered == 10)
            moneyOwed = numberRegistered * feePerFiveThroughTen;
            cout << " Money Owed : $ " ;
            cin >> moneyOwed ;

                    else if  (numberRegistered >= 11) 
                    moneyOwed = numberRegistered * feeElevenOrMore;
                    cout << " Money Owed : $ " ;
                    cin >> moneyOwed ;

system("pause");
    return 0;
}
4

4 に答える 4

2

末尾にセミコロンがありますif

if();
   ^^^^

{ }また、条件文の後に中括弧がありません。


if  (numberRegistered == 1 ) ||  (numberRegistered == 2) || (numberRegistered == 3 ) ||  (numberRegistered == 4) 

角かっこがありません:

if( (numberRegistered == 1 ) ||  (numberRegistered == 2) || (numberRegistered == 3 ) ||  (numberRegistered == 4) )
于 2013-02-24T07:56:24.540 に答える
0

ifとelseのそれぞれに角かっこを使用してみてください

于 2013-02-24T07:59:50.183 に答える
0

if(numberRegistered <= 0); 余分なセミコロンがあり、ロジックの問題を回避するために/elseをネストしたときに{}を使用しようとします

于 2013-02-24T08:00:35.237 に答える
0

他の人が指摘しているように、ステートメントの最後のifセミコロンはよくある間違いです。あなたが意味した:

if (numberRegistered <= 0)
{
    // [...]
}

次のelse ifブロックには、もう2つの問題があります。まず、式全体を括弧で囲む必要があります(これは、表示されているコンパイラエラーです)。次に、ブロックを中かっこで囲みます。

else if ((numberRegistered == 1) || (numberRegistered == 2) || (numberRegistered == 3 ) || (numberRegistered == 4))
{
    moneyOwed = numberRegistered * feePerOneThroughFour;
    cout << " Money Owed : $ " ;
    cin >> moneyOwed ;
}

これを短くして読みやすさを向上させることができます。

else if ((numberRegistered >= 1 ) && (numberRegistered <= 4))
{
    moneyOwed = numberRegistered * feePerOneThroughFour;
    cout << " Money Owed : $ " ;
    cin >> moneyOwed ;
}

残りのelse ifブロックにも同じ問題があります。

于 2013-02-24T08:05:28.957 に答える