Loading...
Inna_shtereva avatar Inna_shtereva 1 Точки

Задача "Операции между числа" - Трета задача от междинния изпит на 26 март 2016.

Здравейте, 

бихте ли могли да ми съдействате с откриването на грешка в моя код. Разглеждах и променях няколко пъти вече, но не мога да разбера защо при делене ми дава две нули след десетичната запетая, вместо да дава реалното число. В случай при проверка 123 / 12 ми дава резултат от 10.00 вместо 10.25. Съответно 80/ 100 в джъджа.

Благодаря за съдействието предварително!

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

namespace OperationsBetweenNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            var n1 = int.Parse(Console.ReadLine());
            var n2 = int.Parse(Console.ReadLine());
            var symbol = Console.ReadLine();

            var result = 0;

            if (symbol == "+") // при тези 3 символа трябва да отпечатаме дали резултата е четен или нечетен
            {
                result = n1 + n2;
               if (result % 2 == 0)
               {
                   Console.WriteLine("{0} + {1} = {2} - even", n1, n2, result);
               }
               else
               {
                   Console.WriteLine("{0} + {1} = {2} - odd", n1, n2, result);
               }         
            }
            else if (symbol == "-")
            {
                result = n1 - n2;
                if (result % 2 == 0)
                {
                    Console.WriteLine("{0} - {1} = {2} - even", n1, n2, result);
                }
                else
                {
                    Console.WriteLine("{0} - {1} = {2} - odd", n1, n2, result);
                }         
            }
            else if (symbol == "*")
            {
                result = n1 * n2;
                if (result % 2 == 0)
                {
                    Console.WriteLine("{0} * {1} = {2} - even", n1, n2, result);
                }
                else
                {
                    Console.WriteLine("{0} * {1} = {2} - odd", n1, n2, result);
                }         
            }
            else if (symbol == "/")

            {
                if (n2 != 0)
                {
                    result = n1 / n2;
                    Console.WriteLine("{0} / {1} = {2:f2}", n1, n2, result);
                }
                else
                {
                    Console.WriteLine("Cannot divide {0} by zero", n1);
                }                
            }
            else if (symbol == "%")
            {
                if (n2 != 0)
                {
                    result = n1 % n2;
                    Console.WriteLine("{0} % {1} = {2}", n1, n2, result);
                }
                else
                {
                    Console.WriteLine("Cannot divide {0} by zero", n1);
                }
                        }      
        }
    }
}
 

0
Programming Basics
dqvolla avatar dqvolla 19 Точки

Здравей. Грешка ти дава поради факта че четеш integer(цяло число) от конзолата и заради това резултата няма как да ти е double(с плаваща запетая) понеже го закръгля на цяло число.

Трябва да си промениш входа от int на double както също и резултата :)

0
Inna_shtereva avatar Inna_shtereva 1 Точки

Благодаря много за помощта! :)))

1
ddrajko avatar ddrajko 5 Точки

Мисля, че може да опростиш кода, като при + - и * присвояваш на резултата съответната операция и след това да правиш проверката за четност

0
Inna_shtereva avatar Inna_shtereva 1 Точки

Благодаря, ще пробвам и по този начин :)))

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