0
C# задание 81. Время пить кофе. Как решить, используя в цикле foreach, coffee.Key.ToArray?
Задача решается и так, но интересен вариант решения через это условие.
10 Réponses
+ 2
Покажите вашу попытку
+ 2
int discount = Convert.ToInt32(Console.ReadLine());
Dictionary<string, int> coffee = new Dictionary<string, int>();
coffee.Add("Americano", 50);
coffee.Add("Latte", 70);
coffee.Add("Flat White", 60);
coffee.Add("Espresso", 60);
coffee.Add("Cappuccino", 80);
coffee.Add("Mocha", 90);
//ваш код
foreach(string s in coffee.Keys){
int d = coffee[s] - coffee[s]*discount/100;
Console.WriteLine(s + ": " + d);
}
+ 1
В данном цикле вы обращаетесь к coffee как к словарю, coffee[s], то есть например coffee[Latte] >>> 70.
Вас же просят сделать из ключей словаря массив и соответственно обращаться к ним как к массиву.
Это настолько просто, что мне неудобно давать вам прямой ответ, попробуйте сами изменить этот цикл, тем более вам уже дали половину решения, а я вам намекнул на вторую её часть ☺️
+ 1
Я могу написать что то такое, оно тоже проходит проверку и выдаёт верное решение. Но я не уверен, что правильно понимаю задачу.
var c = coffee.Keys.ToArray();
foreach(var i in c){
int d = coffee[i] - coffee[i]*discount/100;
Console.WriteLine(i + ": " + d);
}
+ 1
В принципе я тоже написал аналогичный код, с той лишь разницей, что более точно определил переменные:
string[] c = coffee.Keys.ToArray();
foreach(string i in c)
И так-же не уверен в том что это то что они хотели бы видеть ☺️, так-как первый вариант с небольшими изменениями более лаконичен в моём понимании.
Я написал ещё третий вариант с использованием метода Values, но он тоже меркнет по сравнению с первым. ☺️
0
изначальный код задачи
static void Main(string[] args)
{
int discount = Convert.ToInt32(Console.ReadLine());
Dictionary<string, int> coffee = new Dictionary<string, int>();
coffee.Add("Americano", 50);
coffee.Add("Latte", 70);
coffee.Add("Flat White", 60);
coffee.Add("Espresso", 60);
coffee.Add("Cappuccino", 80);
coffee.Add("Mocha", 90);
//ваш код
}
0
Менеджер кофейни проводит рекламную акцию и хочет предоставить скидку на кофейные напитки. Вам дана программа, которая принимает на входе размер скидки и определяет словарь, в котором названия кофейных напитков заданы в качестве ключей, а их цена - в качестве значений.
Напишите программу, которая будет применять скидку ко всем ценам и выводить новый прайс-лист в формате указанном ниже.
Пример Входных Данных
10
Пример Выходных Данных
Americano: 45
Latte: 63
Flat White: 54
Espresso: 54
Cappuccino: 72
Mocha: 81
0
Используйте coffee.Keys.ToArray() внутри цикла foreach.
Обратите внимание на пробел после ":" в выходных данных.
0
эту попытку бот считает верной, не понимаю как использовать coffee.Keys.ToArray в foreach
- 1
using System;
using System.Collections.Generic;
using System.Linq;
namespace Dict
{
class Program
{
static void Main(string[] args)
{
int discount = Convert.ToInt32(Console.ReadLine());
Dictionary<string, int> coffee = new Dictionary<string, int>();
coffee.Add("Americano", 50);
coffee.Add("Latte", 70);
coffee.Add("Flat white", 60);
coffee.Add("Espresso", 60);
coffee.Add("Cappuccino", 80);
coffee.Add("Mocha", 90);
String[] coffeename = coffee.Keys.ToArray();
foreach (var item in coffeename)
{
Console.WriteLine("{0} : {1}", item, coffee[item]-coffee[item]*discount/100);
}
}
}
}
Это тупизм конечно, имея словарь, создавать еще и массив отдельно, но решается так