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 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");
}
}
}
В switch-a, кейсовете ти започват с главна буква, а на входа им казваш .ToLower(), за това не ти взлиза в switch-а!
Благодаря!