-2

私は c# の初心者で、いくつかのループ ステートメントについて助けが必要です。

私は、1 マイルあたりのコスト (50 ペンス) を計算し、1,000 ドルごとに 30.00 ポンドを損耗料金として追加するプログラムを設計して練習しています。

誰かが私にいくつかのヒントを与えることができれば、私はロジックを理解するのに問題があります.

namespace ConsoleApplication10
{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Input start milleage:");
            decimal StartMile = Convert.ToDecimal(Console.ReadLine());
        Console.WriteLine("Input Finish milleage:");
            decimal FinishMile = Convert.ToDecimal(Console.ReadLine());
            decimal TotalMilleage = FinishMile - StartMile;

            if (TotalMilleage < 1000)

                TotalMilleage = TotalMilleage / 2;

                Console.WriteLine("Total charge for hire:{0:C}", TotalMilleage);


            Theres the code Ive done so far :S
4

4 に答える 4

2

マイルがint

よくわかりませんが、質問は次のとおりです。

double price = 0.5 * miles + 30 * (miles / 1000);

そうすれば、1200 マイルで 30.00 ポンドを一度だけ追加できます。2回追加したい場合:

int times = miles / 1000;
if (miles % 1000 != 0)
    times++;
double price = 0.5 * miles + 30 * times;
于 2012-11-22T15:04:11.943 に答える
2

このような式を作成するだけでループは必要ありません.1000マイル後にのみ£30が請求されると仮定します.

double price = 0.5 * DistanceInMile + ((int)(DistanceInMile /1000)) *30;
于 2012-11-22T15:03:25.443 に答える
0

すでに指摘したように、これには算術が適していますが、これはプログラミングの演習であるため、これを行う方法はたくさんあります。

まず、整数のマイルを使用していると仮定します

int miles=4555; // example mile count;
decimal cost=0; // starting cost;
int mileCounter=0;

for (int i=1; i<=miles;i++) {
  cost += 0.5m;
  mileCounter++;
  if ( mileCounter == 1000) {
    mileCounter = 0;
    cost += 30;
  }
}

または、マイルカウンターを使用できず、数学を使用して計算することもできません

for (int i=1; i<=miles;i++) {
  cost += 0.5m;
  if ((i % 1000) == 0) {
    cost += 30;
  }
}

個々のマイルループを忘れることができます

decimal cost = 0.5m * miles;
for (int i=1000; i<= miles; i+=1000) {
  cost += 30;
}

そして最後に、直接的な算術アプローチ

decimal cost = 0.5m * miles + (30 * Math.Truncate(miles/1000m));
于 2012-11-22T15:14:48.623 に答える
0
route.Cost = 0.5 * route.Length + (Math.Floor(route.Length / 1000)) * 30;
于 2012-11-22T15:14:00.213 に答える