-1

明日が期限の宿題があり、ユーザーに車の台数と走行距離を入力してもらい、総費用を表示させます。費用はマイル数によって異なります。100 未満の場合は 25 セント/マイル、100 を超える場合は 100 + 15 セント/マイルです。Milesとを保持する構造を作成しましたPrice。これが私がこれまでに持っているものです:

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

struct Cars
{
    int Miles;
    double Price;
};

int main()
{    
    cout << "ENTER ALL OF THE CARS!";
    int NoCars;
    cin >> NoCars;
    Cars* info = new Cars[NoCars];
    int i;
    for (i=0; i<NoCars; i++)
    {
        cout << "How many miles were driven on this car? :";
        cin >> info[i].Miles;
        if(Miles > 100)
        {
            Price = 25 + 0.15 * Miles;
        } 
        else 
        {
            Price = 0.25*Miles;
        }
    }
    cout << "Here are the prices: \n";
    for(x=0, x < NoCars; x++)
    {
        cout << info[x].Price;
    }

    return 0;
}

ご覧のとおりPrice、ステートメントで変数を変更しようとしifましたが、簡単にはアクセスできないようです。ポインタはありますか?

4

2 に答える 2

1

PriceMilesは のフィールドstruct Carsなので、次のように使用する必要があります。

if(info[i].Miles > 100)
{
    info[i].Price = 25 + 0.15 * info[i].Miles;
} 
else 
{
    info[i].Price = 0.25 * info[i].Miles;
}

また、最後のforステートメントでxは、宣言されていない which を使用しています。おそらくi?のタイプミスです。ところで、あなたもセミコロンを失いました:

for(x=0, x < NoCars; x++)
//     ^ should be ;
于 2013-09-27T00:45:27.963 に答える
0

この小さなプログラムには間違いがほとんどないと思います。

1:if(Miles > 100)
    {
        Price = 25 + 0.15 * Miles;
    } 
    else 
    {
        Price = 0.25*Miles;
    }

たぶん、次のように変更する必要があります。

if(info[i].Miles > 100)
    {
        info[i].Price = 25 + 0.15 * info[i].Miles;
    } 
    else 
    {
        info[i].Price = 0.25*info[i].Miles;
    }

2:for(x=0, x < NoCars; x++)

たぶん、次のように変更する必要があります。

for(x=0; x < NoCars; x++)
于 2013-09-27T03:21:25.673 に答える