-1

顧客が購入した商品の数に応じて割引を表示する簡単なプログラムを作成しようとしています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication11
{
    class Program
    {
        const int SIZE = 4;
        static void Main(string[] args)
        {
            int itemsbought = 0;
            double discountItem = 0;
            int[] items = new int[SIZE] { 0, 10, 26, 61 };
            double[] discount = new double[SIZE] { 0.0, 0.05, 0.10, 0.15 };

            InputItems(ref itemsbought);
            getDiscount(items, discount, ref itemsbought, ref discountItem);

            Console.WriteLine("Your discount is {0}", discountItem);

        }

        private static void getDiscount(int[] items, double[] discount, ref int itemsbought, ref double discountItem)
        {
            int idx = 0;
            for (idx = 1; idx >= items.Length; idx++)
            {
                while (itemsbought >= items[idx])
                {
                    discountItem = discount[idx];
                    idx++;
                }
            }
        }
        private static void InputItems(ref int itemsbought)
        {
            Console.WriteLine("Enter the amount of items you bought");
            while (!int.TryParse(Console.ReadLine(), out itemsbought))
                Console.WriteLine("Error, whole numbers only");
        }
    }
}

どういうわけか、これの論理が本当に悪いことは知っていますが、よくわかりません。話題の一つはもちろん入力に合わせた割引が表示されていること。どんな値を入力しても「割引は0です」と表示されるだけです。

4

2 に答える 2

1

あなたのforループはすべて間違っています。まず、条件が であるため、実行されていませんidx >= items.Length;。それは反対でなければなりません: idx < items.Length;. idx第二に、イニシャライザで設定している理由がわかりません1...

内側の while ループもおそらくあなたがやりたいことをしないでしょうが、そもそも何をしたいのかさえわかりません。

于 2013-04-05T02:09:19.463 に答える
0

ループ条件チェック部分を修正する必要があります。これは、本来idx >= items.Length;あるべきフォルト ロジックを使用していidx < items.Length;ます。

C# の配列には 0 ベースのインデックスがあるため、 で始まる必要がありidx = 0ます。

for (idx = 0; idx < items.Length; idx++)
{
    while (itemsbought >= items[idx])
    {
        discountItem = discount[idx];
        idx++;
    }
}
于 2013-04-05T02:11:09.190 に答える