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}");
}
}
}
Ето и едно с обектче :)