6та задача 2018
Само аз ли не схванах как се решава?
Тъй като не можеш да променяш типа на входа... Или е int n =int.Parse(Console.ReadLine() или string n =Console.ReadLine()
- Закупеното количество храна за една котка в килограми – цяло число в интервала [1.00…100.00]
- На всеки следващ ред ще получавате колко грама изяжда котката на всяко хранене до получаване на команда Adopted - цяло число в интервала [10.00…1000.00]
Изход
На конзолата се отпечатва 1 ред:
- Ако количеството храна е достатъчно да се отпечата:
"Food is enough! Leftovers: {останала храна} grams."
- Ако количеството храна не е достатъчно да се отпечата:
"Food is not enough. You need {нужно количество храна} grams more."
Примерен вход и изход
Вход |
Изход |
Обяснения |
4 130 345 400 180 230 120 Adopted |
Food is enough! Leftovers: 2595 grams. |
Закупеното количество храна е 4 кг = 4 * 1000 = 4000 грама. Общото количество храна, което е изяла котката преди да бъде осиновена е: 130 + 345 + 400 + 180 + 230 + 120 = 1405 грама. Това количество е по-малко от първоначалното закупено (4000 грама) => остава храна, която е 4000 – 1405 = 2595 грама. |
Ама не можеш да променяш типа на входа... Или е int n =int.Parse(Console.ReadLine() или
string n =Console.ReadLine()
хаха ама ман int n =int.Parse(Console.ReadLine() правиш тва и после int n*=1000 и си готов :Д:Д смисъл то това е логично ти четеш входа записваш го в променливата и след това си свободен да правиш каквото искаш. Единственоот immutable нещо в с# е стринга но и с него може да се прави всичко малко по завъртявно е просто.
дали е 4 или 4000 int-a това не го бърка,въпроса е че ти ще работиш в правилната дименсия грамове.
това че си прочел едно число не означава е не можеш да го променяш и тн. на нищо ли не ви учат вече на тея басик курсове wow?!
ето ти го набързо дори без компилатор ще го напиша
int food= int.Parse(Console.ReadLine());
int givenFood=food*1000;
int eatenFood=0;
string input;
while((input=Console.ReadLine())!="Adopted")
{
int foodPerDay= int.Parse(input);
eatenfood+=foodPerDay;
}
int leftOvers=Math.Abs(givenFood-eatenFood);
string result = givenFood-eatenFood>0 ?$"Food is enough! Leftovers: {leftOvers} grams.":$"Food is not enough. You need {leftOvers} grams more.";
Console.WriteLine(result);
Четеш си входа,превръщаш числото в кг, започваш да четеш дните и количеството храна докато получиш Аdopted като вход. след това правиш сравнението. И накрая един тринарен оператор вместо if else и това е.А math.Abs винаги ти връща положителната стойност на число дори да не ти стигне храна и да получиш -555 грама примерно.math.abs ще ти върне 555 и спокойно си печаташ че не ти достигат 555 грама.
Брат не ме разбра :D аз говоря ппц
Аз написах :
int kgFood =int.Parse(Console.ReadLine()
Int gramFoodBought = kgFood * 1000
(И сега трябва да се въведат грамовете изядени от котките и когато се въведат всички стойности трябва да се напишв Adopted и това да сумира и сравни..) Това е ясно ама проблема ми е че ако ще чете от конзолата ИЛИ Само тип Числа ИЛИ Само тип Стринг (т.е. Текст) и дори да въведа изведнъж текст програмата се чупи... Въпроса ми е как да направя така че да си въвеждам числа и когато си реша като въведа текст да си го чете... Ако може направо покажи решението на задачата ще съм благодарен
виж ми предния коментар как съм направил while цикъла и ще разбереш :Д Че се заиграх да ти го напиша и ти си отговорил през това време.Затова се ползват циклите в случай като този. :Д
@karim.moh16
От конзолата можеш да прочетеш единствено стринг. След това дали ще го парсваш до нещо друго си е твоя работа, но не знам кой ти е казал, че можеш да четеш нещо друго.
int n =int.Parse(Console.ReadLine()) е същото като
string s =Console.ReadLine()
int n =int.Parse(s)
бтв братле мерси.. много си печен, много ми помогна (Теодор)
да схванах мерси братле мн ( Боян)