Loading...
divanovd avatar divanovd 0 Точки

Cinema - задачката, ако някой може да ми каже къде ми е грешката?

 

Това е моето решение:

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

namespace Cinema
{
    class Program
    {
        static void Main(string[] args)
        {
            var TypeOfMovie = Console.ReadLine();
            var lines = int.Parse(Console.ReadLine());
            var columns = int.Parse(Console.ReadLine());
            var price = 0.0;
           

            if (TypeOfMovie == "Premiere")
            { price = 12.00;
            }
            else if (TypeOfMovie == "Normal")
            { price = 7.50;
            }
            else if (TypeOfMovie == " Discount")
            { price = 5.00;
            }
            
            Console.WriteLine("{0,F2}", lines * columns * price);
                
        }
    }
}
 

Намерих на един колега решението със " switch , case" начина:

namespace Cinema
  {
  using System;
   
  class Cinema
  {
  static void Main()
  {
  var movie = Console.ReadLine().ToLower();
  var rows = int.Parse(Console.ReadLine());
  var columns = int.Parse(Console.ReadLine());
   
  double price = 0.0;
   
  switch (movie)
  {
  case "premiere": price = 12.0; break;
  case "normal": price = 7.5; break;
  case "discount": price = 5.0; break;
  default:
  break;
  }
   
  Console.WriteLine("{0:f2}", rows * columns * price);
  }
  }
  }

 

Някакви идеи защо "switch,case" варянта работи, а "if-else" начина не се компилира?

Тагове:
0
Programming Basics
kolioi avatar kolioi 641 Точки
Best Answer

{0,F2} трябва да бъде {0:F2}

0
desislava777 avatar desislava777 165 Точки

Не съм изпробвала твоя код, но мисля че и по двата начина задачата може да се реши. Ако искаш, разгледай моите решения, направени със switch и if else. Сигурно ще се сетиш къде бъркаш: https://pastebin.com/RjMWubdR  https://pastebin.com/0P1f7JNF

0
Tekosz avatar Tekosz 13 Точки

Резултатът да се отпечата във формат като в примерите по-долу, с 2 знака след десетичната точка. Грешката ти е точно тук: "{0,F2}". Трябва да бъде "{0:F2}". 

0
divanovd avatar divanovd 0 Точки

Въпреки поправката ми дажа 65/100 и не знам защо...

0
Tekosz avatar Tekosz 13 Точки

Другата грешка е тук: else if (TypeOfMovie == " Discount"). Трябва да бъде: else if (TypeOfMovie == "Discount"). Без space след кавичката. Вече трябва да е 100/100

0
01/11/2017 00:07:40
divanovd avatar divanovd 0 Точки

леле глупави грешки,но фатални благодаря!

0
Zdravkov17 avatar Zdravkov17 15 Точки

Грешката ти е в placeholdera , когато отпечатваш резултата.{0,F2} трябва да бъде {0:F2}

Съветвам те , когато имаш по-дълги изрази да ги вадиш в променлива , например 

var result = rows * columns * price;

Console.WriteLine("{0:F2}",result);

: ) 

0
tolsuzov1 avatar tolsuzov1 1 Точки

Разпечатването накрая трябва да е - Console.WriteLine("{0:F2} leva", lines * columns * price);

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