03. SoftUni Bar Income
Задачата ми дава 70/100 и не знам какъв е проблема code - https://pastebin.com/cv8GGZVi
Задачата ми дава 70/100 и не знам какъв е проблема code - https://pastebin.com/cv8GGZVi
Здравей,
в задачата се иска да принтираш всеки валиден инпут, а съхранявайки данните от инпута в речник,
се получава така че например един и същи продукт въведен с различни цени няма да бъде принтиран с различните му цени, а ще бъде принтиран само последният въведен.
Ето поправеното ти решение (без речник):
using System;
using System.Text.RegularExpressions;
namespace _03._Problem
{
    class Program
    {
        static void Main(string[] args)
        {
            string pattern = @"^%(?<customer>[A-Z][a-z]+)%[^|$%.]*<(?<product>\w+)>[^|$%.]*\|(?<count>\d+)\|[^|$%.]*?(?<price>[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)\$";
            double totalIncome = 0;
            while (true)
            {
                var line = Console.ReadLine();
                if (line == "end of shift")
                {
                    break;
                }
                if (Regex.IsMatch(line, pattern))
                {
                    Match match = Regex.Match(line, pattern);
                    var customer = match.Groups["customer"].Value;
                    string product = match.Groups["product"].Value;
                    int count = int.Parse(match.Groups["count"].Value);
                    double price = double.Parse(match.Groups["price"].Value);
                    double money = price * count;
                    Console.WriteLine($"{customer}: {product} - {money:F2}");
                    totalIncome += money;
                }
            }
            Console.WriteLine($"Total income: {totalIncome:F2}");
        }
    }
}
Ето и едно с обектче :)