Софтуерно Инженерство
Loading...
+ Нов въпрос
VeselaMircheva avatar VeselaMircheva 0 Точки

02. Skeleton, от Programming Basics Online Exam - 9 and 10 March 2019

Здравейте,

 

Може ли някой да ми помогне със решението на тази задача на c#, judge mi dava 10%, но получавам всичките изходи от примерните входoве.

ПС: не съм сложила най-точните имена на различните типове данни, но като цяло мисля, че се разбира смисъла. 

 

Задача:

Българският състезател по скелетон Марин Бангиев се бори за олимпийска квота. Вие имате честта да напишете програмата, която ще изчисли дали той печели квота.  
Вашата програма получава контролата в минути, която трябва да бъде достигната или подобрена, за да може Марин да вземе квота. Също така програмата ще получи разстоянието на улея в метри, и времето в секунди, за което той изминава 100 метра. 
Трябва да се има предвид, че поради наклона улея, на всеки на 120 метра неговото време намаля с 2.5 секунди.
Вход1
От конзолата се четат 4 реда:
Минути на контролата – цяло число в интервала [0…59]
Секунди на контролата – цяло число в интервала [0…59]
Дължината на улея в метри – реално число в интервала [0.00…50000]
Секунди за изминаване на 100 метра – цяло число в интервала [0…1000]
Изход
На конзолата трябва да се отпечата на един или два реда:
Ако времето на Марин е по-малко или равно на контролата:
"Marin Bangiev won an Olympic quota!"
"His time is {времето на Марин в секунди}."
Ако времето на Марин е повече от това на контролата:
 "No, Marin failed! He was {недостигащи секунди} second slower."
Резултатът трябва да е форматиран до третия знак след десетичния знак.
 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp95
{
    class Program
    {
        static void Main(string[] args)
        {
            int min = int.Parse(Console.ReadLine());
            int sek = int.Parse(Console.ReadLine());
            double daljinametri = double.Parse(Console.ReadLine());
            int sekzastometra = int.Parse(Console.ReadLine());

            int kontrolavsek = min * 60 + sek;
            double namalqvanevremeputi = daljinametri/120;
            double obshtonamalenovreme = namalqvanevremeputi * 2.5;
            double vremetotal = (daljinametri / 100) * (int)namalqvanevremeputi - obshtonamalenovreme;

            if (vremetotal <= kontrolavsek)
            {
                Console.WriteLine("Marin Bangiev won an Olympic quota!");
                Console.WriteLine("His time is {0:F3}.",vremetotal);
            }
            else if (vremetotal > kontrolavsek)
            {
                double kraenrezultat = vremetotal - kontrolavsek;
                Console.WriteLine("No, Marin failed! He was {0:F3} second slower.", kraenrezultat);
            }
        }
    }
}

 

Благодаря предварително! 

Тагове:
iGeorg1ev avatar iGeorg1ev 209 Точки
Best Answer

Здравей,

Реда:

double vremetotal = (daljinametri / 100) * (int)namalqvanevremeputi - obshtonamalenovreme;

го  направи:

double vremetotal = (daljinametri / 100) * sekzastometra - obshtonamalenovreme;

И взимаш 100/100.

 

Иво

0
VeselaMircheva avatar VeselaMircheva 0 Точки

Много благодаря :)

0