-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的是未声明的,可能是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 回答