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
Fundamentals Module
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 1316 Точки

/OFF

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

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

smiley

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.