Софтуерно Инженерство
Loading...
karim.moh16 avatar karim.moh16 3 Точки

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 грама.

Тагове:
0
Основи на програмирането 18/06/2018 12:02:06
TeodorStefanovPld avatar TeodorStefanovPld 1260 Точки

e защо имаш едно число което е кг храна първо ти подават него четеш  и го уможаваш по 1000 да го превърнеш в грамове.

После имаш един while цикъл докато входа ти е различен от Adopted събираш числата които ти дават в една променлива.

Когато излезеш от цикъла вадиш от килограмите/първата променлива - втората/колко яде котката и  в зависимост от резултата печаташ отговора. straight forward e тая задача.Като тази проверка може да се направи с боол примерно

bool enough= givenFood-eatenFood>0 и ако е true да стигнала ако е false ne e стигнала.

0
18/06/2018 05:28:53
karim.moh16 avatar karim.moh16 3 Точки

Ама не можеш да променяш типа на входа... Или е int n =int.Parse(Console.ReadLine() или

string n =Console.ReadLine() 

0
TeodorStefanovPld avatar TeodorStefanovPld 1260 Точки

хаха ама ман  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 грама.

-1
18/06/2018 12:30:51
karim.moh16 avatar karim.moh16 3 Точки

Брат не ме разбра :D аз говоря ппц

 Аз написах :

int kgFood =int.Parse(Console.ReadLine() 

Int gramFoodBought = kgFood * 1000

(И сега трябва да се въведат грамовете изядени от котките и когато се въведат всички стойности трябва да се напишв Adopted и това да сумира и сравни..) Това е ясно ама проблема ми е че ако ще чете от конзолата ИЛИ Само тип Числа ИЛИ Само тип  Стринг (т.е. Текст) и дори да въведа изведнъж текст програмата се чупи...  Въпроса ми е как да направя така че да си въвеждам числа и когато си реша като въведа текст да си го чете... Ако може направо покажи решението на задачата ще съм благодарен

 

0
TeodorStefanovPld avatar TeodorStefanovPld 1260 Точки

виж ми предния коментар как съм направил while цикъла и ще разбереш :Д Че се заиграх да ти го напиша и ти си отговорил през това време.Затова се ползват циклите в случай като този. :Д

0
18/06/2018 12:32:24
BoYaN avatar BoYaN 331 Точки

@karim.moh16

От конзолата можеш да прочетеш единствено стринг. След това дали ще го парсваш до нещо друго си е твоя работа, но не знам кой ти е казал, че можеш да четеш нещо друго.

int n =int.Parse(Console.ReadLine()) е същото като
string s =Console.ReadLine()
int n =int.Parse(s)

0
karim.moh16 avatar karim.moh16 3 Точки

бтв братле мерси.. много си печен, много ми помогна (Теодор)

0
27/07/2018 19:51:55
karim.moh16 avatar karim.moh16 3 Точки

да схванах мерси братле мн ( Боян)

0