Loading...
Mia.nestorova avatar Mia.nestorova 1 Точки

Complex Conditional Statements - Cinema; C#

Здравейте, имам проблем със следната задача:

В една кинозала столовете са наредени в правоъгълна форма в r реда и c колони. Има три вида прожекции с билети на различни цени:

  • Premiere – премиерна прожекция, на цена 12.00 лева.
  • Normal – стандартна прожекция, на цена 7.50 лева.
  • Discount – прожекция за деца, ученици и студенти на намалена цена от 5.00 лева.

Напишете програма, която въвежда тип прожекция (стринг), брой редове и брой колони в залата (цели числа) и изчислява общите приходи от билети при пълна зала. Резултатът да се отпечата във формат като в примерите по-долу, с 2 знака след десетичната точка.  

Има решения с If-else във въпросите, но искам да я направя със switch, а ми дава 0 точки :(. Ето решението ми, ще се радвам някой да ми помогне! :) 

using System;
namespace Cinema
{
    class Program
    {
        static void Main(string[] args)
        {
            String typeProjection = Console.ReadLine();
            int rows = int.Parse(Console.ReadLine());
            int columns = int.Parse(Console.ReadLine());

            int seats = rows * columns;
            double price = 0;

            switch (typeProjection)
            {
                case "Premiere": price = 12.00; break;
                case "Normal": price = 7.50; break;
                case "Discount": price = 5.00; break;
                default: Console.WriteLine("error"); break;
            }

            double total = seats * price;

            Console.WriteLine("{ 0:f2}", total);

       }
    }
}
    
 

Тагове:
0
Programming Basics
vancho avatar vancho 430 Точки

Console.WriteLine("{0:f2}", total); - имаше спейс преди нулата и ти хвърляше ексепшън. Както и този default може да го махнеш, защото не се прави така (ще ти принтира error и ще отиде да смята по-долу).

1
29/01/2017 17:17:52
julifis avatar julifis 1 Точки

Здравейте, 

Включвам се за същата задача. Проблемът е, че ми връща 0 leva, след компилация. Къде бъркам? Моето решение е:

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

namespace _11_Cinema
{
    class _11_Cinema
    {
        static void Main()
        {
            var typeShow = Console.ReadLine().ToLower();
            var row = int.Parse(Console.ReadLine());
            var column = int.Parse(Console.ReadLine());

            var currentTicketPrice = 0f;
          
            
            switch (typeShow)
            {
                case "Premiere": currentTicketPrice = 12f; break;
                case "Normal": currentTicketPrice = 7.5f; break;
                case "Discount": currentTicketPrice = 5f; break;
                
            }
            
            Console.WriteLine(Math.Round(row * column * currentTicketPrice, 2) + " leva");
        }
    }
}
 

0
vancho avatar vancho 430 Точки

В switch-a, кейсовете ти започват с главна буква, а на входа им казваш .ToLower(), за това не ти взлиза в switch-а!

1
15/02/2017 17:01:19
julifis avatar julifis 1 Точки

Благодаря! 

0
StefkaVasileva avatar StefkaVasileva 250 Точки

Премахни интервала в плейсхолдера  Console.WriteLine("{ 0:f2}", total); , зарадани него получаваш FormatException . 

0
30/01/2017 17:59:37
nelkov avatar nelkov 19 Точки

 Тама  където печаташ накрая печалбата махни space-a между скобата иа нулата. Трябва да стане така:

Console.WriteLine("{0:f2}", total);

 

0
Mia.nestorova avatar Mia.nestorova 1 Точки

Благодаря много за всички, не мога да повярвам, че съм допуснала такава грешка ;д .. 

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