Problem 4. Number Comparer


1

Здравейте,

Не разбирам защо като run-на програмата на конзолата ми се появява false  като например за "a" задам стойност 5 , а за "b" -2. Като я проверявам ред по ред във locals се изписват верните стойности за "c", обаче на конзолата не се.

using System;
    class Problem4NumbComparer
    {
        static void Main()
        {
            Console.WriteLine("Enter the first number:");
            double a = double.Parse(Console.ReadLine());
            Console.WriteLine("Enter the second number:");
            double b = double.Parse(Console.ReadLine());

            bool c = ((a - b) > 0);

            switch (c)
            {
                case false: Console.WriteLine(a > b);
                    break;

                case true: Console.WriteLine(a < b);
                    break;

                default: Console.WriteLine("Error!");
                    break;
            }

        }
    }




Отговори



3

Защото а(5) не е по-малко от б(-2).

Ако искаш да принтираш, че а е по-малко от б, трябва да го напишеш в кавички, за да се превърне в стринг(cw("a<b")), защото по този начин (cw(a<b)), ти подаваш булев израз, който програмата свежда до false (5 < -2). :)

едит: ако целта е output-a да е true/false - както е написал @lnikod4s, но ако е само това - можеш направо да изпринтираш стойността на c без да използваш switch или да изпишеш само cw(a>b) без да инциализираш променлива с :)


от dentia (12519 точки)


1

Просто си обърнал случаите. Така вече работи:

Console.WriteLine("Enter the first number:");
		double a = double.Parse(Console.ReadLine());
		Console.WriteLine("Enter the second number:");
		double b = double.Parse(Console.ReadLine());
 
		bool c = ((a - b) > 0);
 
		switch (c)
		{
			case falseConsole.WriteLine(a < b);
				break;
 
			case trueConsole.WriteLine(a > b);
				break;
		}


от lnikod4s (6538 точки)


0

Тази задача от кое домашно е?

струва ми се че си объркал кейсовете: 1вия трябва да ти е true а 2рия false.

Ако с = а-b > 0 --> true --> case true: Console.WriteLine(a > b);

И съответно ако  с = а-b > 0 --> false значи a е по-малко от b --> case false: Console.WriteLine(a < b);

Но не знам какво се иска в задачата точно...




0
  1. Home
  2.  
  3. Contests
  4.  
  5. CSharp-Fundamentals-Homework
  6.  
  7. C# Fundamentals - 04. Console Input and Output

http://bgcoder.com/Contests/Practice/Index/311#3


от delian1914 (0 точки)