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

Programming Fundamentals Sample Exam II

 Блокирах на най-простата задача "Soft Uni Airline". Тестовете ми излизат, обаче дава 20 точки. ако някой може да ми пососчи грешката?

 

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

namespace sample_exam
{
    class Program
    {
        static void Main(string[] args)
        {
            var flights = decimal.Parse(Console.ReadLine());

            decimal prophitMoney = 0;
            decimal lostMoney = 0;
            decimal overall = 0;

            for (int i = 1; i <= flights; i++)
            {
                var adults = decimal.Parse(Console.ReadLine());
                var adultTicketPrice = decimal.Parse(Console.ReadLine());
                var kids = decimal.Parse(Console.ReadLine());
                var kidsTicketPrice = decimal.Parse(Console.ReadLine());
                var fuelPrice = decimal.Parse(Console.ReadLine());
                var fuelConsumption = decimal.Parse(Console.ReadLine());
                var flightDuration = decimal.Parse(Console.ReadLine());

                decimal expences = flightDuration * fuelConsumption * fuelPrice;
                decimal income = (adults * adultTicketPrice) + (kids * kidsTicketPrice);
                
                decimal total = income - expences;
                
               
                if (total < 0)
                {
                    lostMoney += total;
                }
                else
                {
                    prophitMoney += total;
                }
     
            }
            overall = prophitMoney + lostMoney;


            if (lostMoney < 0)
                Console.WriteLine("We've got to sell more tickets! We've lost {0:f3}$." , lostMoney);

            if (prophitMoney > 0 && overall > 0 )
            {
                Console.WriteLine("You are ahead with {0:f3}$.", prophitMoney);
                Console.WriteLine("Overall profit -> {0:f3}$.", overall);
                Console.WriteLine("Average profit -> {0:f3}$.", overall / flights);
            }
        }
    }
}

Тагове:
0
Technology Fundamentals
VladimirAnaniev avatar VladimirAnaniev 54 Точки

Задаваш стойност на overall извън for цикъла.

Опитай да го вкараш вътре за да може да се променя при всяко завъртане.

 

overal += prophitMoney + lostMoney;

 

2
10/06/2016 19:26:47
samnaliev avatar samnaliev 15 Точки

Не е това. Номера е че сметките ми излизат точно и от двата примера, които има към задачата.

0
VladimirAnaniev avatar VladimirAnaniev 54 Точки

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

 

var adults = int.Parse(Console.ReadLine());
var kids = int.Parse(Console.ReadLine());
var flights = int.Parse(Console.ReadLine());
...

 

И където ти дава проблем с сметките му дай (decimal)([израз]).

1
samnaliev avatar samnaliev 15 Точки

Пробвах вече. Така го докарах до 60 (кода, който съм пейстнал долу), но пак не мога да разбера къде бъркам. Мерси все пак.

 

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

namespace sample_exam
{
    class Program
    {
        static void Main(string[] args)
        {
            var flights = decimal.Parse(Console.ReadLine());

            decimal totalMoney = 0;


            for (int i = 0; i < flights; i++)
            {
                var adults = decimal.Parse(Console.ReadLine());
                var adultTicketPrice = decimal.Parse(Console.ReadLine());
                var kids = decimal.Parse(Console.ReadLine());
                var kidsTicketPrice = decimal.Parse(Console.ReadLine());
                var fuelPrice = decimal.Parse(Console.ReadLine());
                var fuelConsumption = decimal.Parse(Console.ReadLine());
                var flightDuration = decimal.Parse(Console.ReadLine());

                var expences = flightDuration * fuelConsumption * fuelPrice;
                var income = (adults * adultTicketPrice) + (kids * kidsTicketPrice);

                var total = income - expences;
                //var averageProphit = total / flights;

                totalMoney += total;

                if (total < 0)
                {
                    Console.WriteLine("We've got to sell more tickets! We've lost {0:f3}$.", total);
                }
                else
                {
                    Console.WriteLine("You are ahead with {0:f3}$.", total);
                }
            }
            if (totalMoney >= 0)
            {
                Console.WriteLine("Overall profit -> {0:f3}$.", totalMoney);
                Console.WriteLine("Average profit -> {0:f3}$.", totalMoney / flights);
            }
        }
    }
}

 

0
11/06/2016 12:28:30
a.angelov avatar a.angelov 1331 Точки

/OFF

Следващия път имай в предвид следната точка от правилата:

12. Във всеки пост е позволено цитирането на не повече от 15 реда код. Ако искате да споделите по-дълъг код, използвайте сайтове като Pastebin и Github Gist).

smiley

1