Софтуерно Инженерство
Loading...
passador83 avatar passador83 1 Точки

Проблем със задача 05. Walking

Дава ми Exeption. Всъщност знам къде ми е грешката, но не мога да я коригирам.

Ето го решението ми:  https://pastebin.com/13geAiKv

 

Ето и условието на задачата:

Габи иска да започне здравословен начин на живот и си е поставила за цел да върви 10 000 стъпки всеки ден. Някои дни обаче е много уморена от работа и ще иска да се прибере преди да постигне целта си. Напишете програма, която чете от конзолата по колко стъпки изминава тя всеки път като излиза през деня и когато постигне целта си да се изписва "Goal reached! Good job!"  
Ако иска да се прибере преди това, тя ще въведе командата "Going home" и ще въведе стъпките, които е извървяла докато се прибира. След което, ако не е успяла да постигне целта си, на конзолата трябва да се изпише: "{разликата между стъпките} more steps to reach goal."
 

Тагове:
krasizorbov avatar krasizorbov 38 Точки

Здравей,

ето едно примерно решение...

 

 

using System;

namespace Steps
{
    class Program
    {
        static void Main(string[] args)
        {
            
            int sum = 0;
            while (sum < 10000)
            {
                string step = Console.ReadLine();
                int steps;
                if (int.TryParse(step, out steps))
                {
                    sum = sum + steps;
                }
                else if (step == "Going home")
                {
                    int lastStep = int.Parse(Console.ReadLine());
                    sum = sum + lastStep;
                    break;
                }
            }
            if (sum < 10000)
            {
                Console.WriteLine("{0} more steps to reach goal.", 10000 - sum);
            }
            else
            {
                Console.WriteLine("Goal reached! Good job!");
            }
        }

    }
}

0
passador83 avatar passador83 1 Точки

Благодаря колега. Решения на задачата мога да си намеря, но ще бъда благодарен някой да ми посочи къде точно бъркам и защо ми дава exeption. Явно има проблем с парсването.

Благодаря за отделеното време.

0
krasizorbov avatar krasizorbov 38 Точки

Дава ти exeption защото ако вместо число поставя string - някаква дума, то няма как да я преобразува в число. Това става където парсваш:

string command = Console.ReadLine();
                int steps = int.Parse(command);

Аз съм го направил така че ако е число сумата е равна на сумата + стъпките. Това е при първия if където преобразувам.

Ако ли не отива на else if  и там чете string: Going home.

Само това трябва да оправиш.

0