Параллельные массивы для пиццы

#c# #arrays #if-statement #for-loop

#c# #массивы #if-оператор #для цикла

Вопрос:

Мне нужно определить три массива (размер, цена и дополнительные). Затем мне пришлось спросить у них их размер и выбор начинки.

Используя цикл for и технику параллельного массива, пройдитесь по массиву size, чтобы найти размер, соответствующий вводимым пользователем данным. Используя текущий индекс вашего цикла, найдите цену для этого размера в массиве цен и напишите пользователю, сколько будет стоить пицца.

Если пользователь сказал, что ему нужны дополнительные начинки, все еще используя тот же индекс для вашего цикла, посмотрите, сколько это стоит в вашем дополнительном массиве, и сообщите пользователю общую стоимость пиццы.

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] sizes = { "S", "M", "L", "X" };
            double[] prices = { 6.99, 8.99, 12.50, 15.00 };
            double[] extra = { 1.00, 2.00, 3.25, 4.50 };
            string inputToppings;
            string inputSize;
                Console.Write("What size pizza would you like? Enter S, M, L, or X:  ");
                inputSize = Console.ReadLine();
                Console.Write("Would you like extra toppings? Enter Y or N: ");
                inputToppings = Console.ReadLine();

            for (int i = 0; i < sizes.Length; i  )
            {
                    if (sizes[i] == inputSize)
                {
                    Console.WriteLine("You ordered a {0} pizza that costs {1:C}.", sizes[i], prices[i]);
                    break;
                }
            }

            Console.ReadLine();
        }
    }
}
 

Моя проблема в том, что я могу получить правильные входные данные для размера и цены пиццы, но я не могу использовать рабочее заявление для отображения цены размера пиццы с начинкой в виде строки записи. Я потратил на это часы и не могу найти рабочий метод. Пожалуйста, помогите…

Комментарии:

1. Я знаю, что это, вероятно, домашнее задание, и вы должны сделать это таким образом, но это не очень хороший дизайн. Гораздо лучший способ сделать это — вызвать класс Pizza , который имеет 3 свойства: размер, цена и Дополнительные. Тогда у вас есть один Pizza[]

Ответ №1:

Попробуйте изменить свой цикл «for» на:

 for (int i = 0; i < sizes.Length; i  )
{
    if (sizes[i] == inputSize)
    {
        var totalPrice = prices[i]   (inputToppings == "Y" ? extra[i] : 0);
        Console.WriteLine("You ordered a {0} pizza that costs {1:C}.", sizes[i], totalPrice);
        break;
    }
}
 

Надеюсь, это поможет.