Професионална програма
Loading...
tanchev avatar tanchev 2 Точки

Methods Lab - 09. Greater of Two Values

1.Greater of Two Values

Create a method GetMax() that returns the greater of two values (the values can be of type int, char or string)

Examples

Input

Output

int

2

16

16

char

a

z

z

string

aaa

bbb

bbb

 

Това ми дава 77/100 и не знам, защо при положение, че кода работи, ако някой е наясно да ми каже, ще съм супер благодарен:

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string command = Console.ReadLine();
            if (command == "int")
            {
                int first = int.Parse(Console.ReadLine());
               int second = int.Parse(Console.ReadLine());
                HigherThenTwo(first, second);
            }
           else if (command == "char")
            {
                char first = char.Parse(Console.ReadLine());
                char second = char.Parse(Console.ReadLine());
                HigherThenTwo(first, second);
            }
            else if (command == "string")
            {
                string first = Console.ReadLine();
                string second = Console.ReadLine();
                HigherThenTwo(first, second);
            }

        }

        static int HigherThenTwo(int first, int second)
        {
       
            int result = 0;
            if (first > second)
            {
                result = first;
            }
            else
            {
                result = second;
            }
            Console.WriteLine(result);
            return result;
        }
        static char HigherThenTwo(char first, char second)
        {
   
            int result;
            if (first > second)
            {
                result = first;
            }
            else
            {
                result = second;
            }
            Console.WriteLine((char)result);
            return (char)result;

        }
        static string HigherThenTwo(string first, string second)
        {
            string result = string.Empty;
            int firstSum = 0;
            int secondSum = 0;
            foreach (char c in first)
            {
                firstSum += c;
            }
            foreach (char c in second)
            {
                secondSum += c;
            }
            if (firstSum > secondSum)
            {
                result = first;
            }
            else
            {
                result = second;
            }
            Console.WriteLine(result);
            return result;
        }





    } 

}

И по интересния факт е, че с готовия мотод за comparison работи и ми дава 100/100:

using System;
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string command = Console.ReadLine();
            if (command == "int")
            {
                int first = int.Parse(Console.ReadLine());
                int second = int.Parse(Console.ReadLine());
                HigherThenTwo(first, second);
            }
            else if (command == "char")
            {
                char first = char.Parse(Console.ReadLine());
                char second = char.Parse(Console.ReadLine());
                HigherThenTwo(first, second);
            }
            else if (command == "string")
            {
                string first = Console.ReadLine();
                string second = Console.ReadLine();
                HigherThenTwo(first, second);
            }

        }

        static int HigherThenTwo(int first, int second)
        {

            int result = 0;
            if (first > second)
            {
                result = first;
            }
            else
            {
                result = second;
            }
            Console.WriteLine(result);
            return result;
        }
        static char HigherThenTwo(char first, char second)
        {

            int result;
            if (first > second)
            {
                result = first;
            }
            else
            {
                result = second;
            }
            Console.WriteLine((char)result);
            return (char)result;

        }
        static string HigherThenTwo(string first, string second)
        {
            string result = string.Empty;
            int comparison = first.CompareTo(second);
            if (comparison > 0)
            {
                result = first;
            }
            else
            {
                result = second;
            }
            Console.WriteLine(result);
            return result;

     
        }

    }
}

Някакви идеи?

Мерси,

2
Fundamentals Module
MPeychev avatar MPeychev 8 Точки

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

За първите два метода можеш да използваш Math.Max(); (ще ти спести няколко реда повторение на код)

Използвай си метода CompareTo за да сравниш двата string-а (Все пак хората за това са го измислили). The CompareTo method was designed primarily for use in sorting or alphabetizing operations.https://docs.microsoft.com/en-us/dotnet/api/system.string.compareto?view=netcore-3.1

1
Elena123456 avatar Elena123456 224 Точки

Здравейте,

предлагам и моето решение на задачата с използването на if..else, Math. Max() за сравнение на char и int, и CompareTo() за сравнение на string.

Интересното за тази задача е, че поне в четири лекции за Методи от минали издания на Fundamental modul или я прескачат или предлаганите решения дават 0/100 в Judge. Ето защо тази тема ще бъде изключително полезна за доста хора, които не разполагат с много време.

Поздрави!

 

 

using System;
using System.Linq;
namespace Methods
{
    class MainClass
    {

 

        public static void Main()
        {
            string command = Console.ReadLine();

            if (command == "int")
            {
                int firstNumber = int.Parse(Console.ReadLine());
                int secondNumber = int.Parse(Console.ReadLine());
                int result= GetMax(firstNumber, secondNumber);
                Console.WriteLine(result);
            }

            else if (command == "string")
            {
                string firstText = Console.ReadLine();
                string secondText = Console.ReadLine();
                string result = GetMax( firstText,  secondText);
                Console.WriteLine(result);

            }

            else if (command == "char")
            {
                char firstChar = char.Parse(Console.ReadLine());
                char secondChar = char.Parse(Console.ReadLine());
                char result = GetMax(firstChar, secondChar);
                Console.WriteLine(result);
            }
        }


     static int GetMax(int firstNumber, int secondNumber)
        {
            int result = Math.Max(firstNumber, secondNumber);
            return (result);
        }

        static string GetMax (string firstText, string secondText)
        {
            int comparison = firstText.CompareTo(secondText);
            if (comparison > 0)
            {
              return (firstText);
            }
            else
            {
                return(secondText);
            }
        }

        static char GetMax(char firstChar, char secondChar)
        {
            char result = (char)Math.Max(firstChar, secondChar);
            return (result);
        }
    }
  }


      

 

1
05/07/2020 00:07:25