Loading...
Valentin23 avatar Valentin23 2 Точки

Проблем с парсването.

Здравейте , вече на няколко подред задачи ми дава грешка в judge, че има проблем със задачите ми при стринга. Явно не го парсвам както трябва . Моля някой да види кода отдолу и да ми помогне да разбера грешката си , защото сам не мога да я открия. Благодаря предварително! 

Задачата е : https://judge.softuni.bg/Contests/Compete/Index/1014#8

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

namespace ConsoleApp22
{
    class Program
    {
        static void Main(string[] args)
        {
            string v ="";
            double shir = double.Parse(Console.ReadLine());
            double dulj = double.Parse(Console.ReadLine());
            double vis = double.Parse(Console.ReadLine());
            double sum = shir * dulj * vis;
            double j = double.Parse(v);
            while (true)
            {
                string kashoni = Console.ReadLine();
                if (kashoni != "Done")
                {
                    int kashParse = int.Parse(kashoni);
                    j += kashParse;
                }
                
                if (j > sum)
                {
                    Console.WriteLine($"No more free space!You need {(sum - j)*-1} Cubic meters more.");
                }
                if (j<=sum && kashoni == "Done")
                {
                    Console.WriteLine($"{sum-j} Cubic meters left.");
                }
            }
        }
    }
}
 

 Дава ми тази грешка : 

Unhandled Exception: System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at ConsoleApp22.Program.Main(String[] args)
Тагове:
0
Programming Basics 07/11/2018 19:52:49
vanya_ant avatar vanya_ant 78 Точки
Best Answer

using System;

namespace Polymorphysm
{
    class Program
    {
        static void Main(string[] args)
        {

            double shir = double.Parse(Console.ReadLine());
            double dulj = double.Parse(Console.ReadLine());
            double vis = double.Parse(Console.ReadLine());
            double sum = shir * dulj * vis;
            double j = 0;
            string kashoni = Console.ReadLine();
            while (true)
            {
                if (kashoni == "Done" || j > sum)
                {
                    break;
                }

                int kashParse = int.Parse(kashoni);
                j += kashParse;

                kashoni = Console.ReadLine();
            }

            if (j > sum)
            {
                Console.WriteLine($"No more free space! You need {(sum - j) * -1} Cubic meters more.");
            }
            if (j <= sum)
            {
                Console.WriteLine($"{sum - j} Cubic meters left.");
            }
        }
    }
}
 

0
vanya_ant avatar vanya_ant 78 Точки

Привет, колега,

първо мога да те посъветвам да слагаш по-издържани имена на променливите :)

 double j = int.Parse(v); - тук парсваш празен стринг към int, а променливата е double?

Условието на задачата не ми е ясно, но като цяло този ред ми се струва доста объркан.

Дано съм помогнала.

 

0
Valentin23 avatar Valentin23 2 Точки

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

0
kristiyanb avatar kristiyanb 20 Точки

string v ="";

double j = int.Parse(v);

 

0
Valentin23 avatar Valentin23 2 Точки

А как трябва да бъдат?

0
kristiyanb avatar kristiyanb 20 Точки

Нямам условието, но за double j трябва да ползваш double.Parse. И за да работи парса трябва да му подаваш валидно число.

 

0
Valentin23 avatar Valentin23 2 Точки

Ето решението на задачата  : https://pastebin.com/FxWEtjrr 

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