Sort Three Numbers

Здравейте,
От скоро съм тук във форума,наскоро се захванах да решавам задачи и ми стана вече и интересно.С повечето се справям но с тази Sort Three Numbers стигнах до 90% и не мога да разбера къде греша. на тест 5 ми дава Test case #5: Wrong Answer [0.03 s, 14.0 MB]

Your output (clipped)

762 762 214
Може и да греша , но чисто математически грешка не виждам.
ето и моя код.
using System;

namespace sort_3_numbers
{
internal class Program
{
static void Main(string[] args)
{
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());

        int c = int.Parse(Console.ReadLine());
        int mid = 0;
        int max = -10000;
        int min = 10000;
        if (a > max)
        {
            max = a;
        }
        if (b > max)
        {
            max = b;
        }
        if (c > max)
        {
            max = c;
        }
        if (a < min)
        {
            min = a;
        }
        if (b < min)
        {
            min = b;
        }
        if (c < min)
        {
            min = c;
        }
        if (a <= max && a >= min)
        {
            mid = a;
        }
        if (b <= max && b >= min)
        {
            mid = b;
        }
       else// if (c < max && c > min)
        {
        mid = c;

        }
        
        Console.WriteLine($"{max} {mid} {min} ");

    }
}

}

Въведи 20 30 10 , и ще видиш как ти се чупи кода. Проблема идва от mid променливата.

Благодарности,
нещата са поправени :slight_smile:

На мен също ми дава 90 точки а всичко пробвах :confused:
int number1 = int.Parse(Console.ReadLine());
int number2 = int.Parse(Console.ReadLine());
int number3 = int.Parse(Console.ReadLine());

        bool trueCondition = (number1 <= 1000) && (number1 >= -1000) && (number2 <= 1000) && (number2 >= -1000) && (number3 <= 1000) && (number3 >= -1000);
        if (trueCondition == true)
         { 
            if ((number1 > number2) && (number1 > number3))
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
       
        if (trueCondition == true)
        {
            if ((number1 > number2) && (number1 > number3) && (number3 > number2))
            {
                Console.WriteLine($"{number1}" + " " + $"{number3}" + " " + $"{number2}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 > number2) && (number1 < number3))
            {
                Console.WriteLine($"{number3}" + " " + $"{number1}" + " " + $"{number2}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 < number2) && (number1 > number3))
            {
                Console.WriteLine($"{number2}" + " " + $"{number1}" + " " + $"{number3}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 < number2) && (number1 < number3) && (number2 > number3))
            {
                Console.WriteLine($"{number2}" + " " + $"{number3}" + " " + $"{number1}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 < number2) && (number1 < number3) && (number2 < number3))
            {
                Console.WriteLine($"{number3}" + " " + $"{number2}" + " " + $"{number1}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 == number2) && ((number1 = number2) > number3))
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
        if (trueCondition == true)
        {
            if( (number1 == number2) && ((number1 = number2) < number3))
            {
                Console.WriteLine($"{number3}" + " " + $"{number1}" + " " + $"{number2}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 == number3) && ((number1 = number3) < number2))
            {
                Console.WriteLine($"{number2}" + " " + $"{number1}" + " " + $"{number3}");
            }
        }
        if (trueCondition == true)
        {
            if ((number1 == number3) && ((number1 = number3) > number2))
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
        if (trueCondition == true)
        {
            if ((number2 == number3) && ((number2 = number3) > number1))
            {
                Console.WriteLine($"{number2}" + " " + $"{number3}" + " " + $"{number1}");
            }
        }
        if (trueCondition == true)
        {
            if ((number2 == number3) && ((number2 = number3) < number1))
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
                
        }
        if (trueCondition == true)
        {
            if ((number1 == number2) && (number2 == number3))
            {

                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }

При 30 10 20 принтира 2 реда 30 10 20 , 30 20 10
Подхода ти е ОК , но махни този буул trueCondition ,
тези constraints са единствено и само ориентировъчни , за да знаеш какъв тип данни да ползваш.
Отделно когато проверяваш нещо if(trueCondiiton == true) няма нужда от == true , то се подразбира. Вместо това if(trueCondiiton==true) трябва да провериш нещо др. Или по-скоро
това което е във вътрешния if да излезе отвън , а вътре да провериш нещо друго

Здравейте,
може да пробвате да я решите с Math.Min & Math.Max :slight_smile: така ще успеете в 3 реда да стигнете до резултата.
Успех

Description

Write a program that enters 3 real numbers and prints them sorted in descending order.

  • Use nested if statements.
  • Don’t use arrays and the built-in sorting functionality.

Ок, дори да е така, коментара пак е голям жокер. Може да намериш само най голямото и най малкото число, по този начин вече ще знаеш и средното :slight_smile: Няма нужда да проверяваш всички комбинации :slight_smile:

Остави хората да се помъчат :slight_smile: има време за тези “улеснения”

В моя код съм стигнал до мин и мах числа успешно и без вградени методи,дано да се сети как да намери и средното число,благодарение на Мирослав се сетих и къде греша при средното число. Иначе улесненията са хубаво нещо :slight_smile:

По принцип ако искаш да “блеснеш” с различен подход, може да намериш 2 пъти най малкото (така ще имаш най малкото и средното) :smiley: и лесно ще намериш най голямото :smiley:

Не мога да се сетя какво трябва да проверявам… Правя опити но все безуспешни

Между другото , в горния код който виждам правиш супер много проверки … не знам защо толкова много.
1-во искаш да провериш дали 1-вото е по-голямо от 2-рото и 3-тото , ако е по-голямо , какво те интересува след това ? Да кажем имаш 10 20 30 , ясно е , че 30 е най-голямото , но това не е достатъчно , какво друго трябва да провериш ?

Средата? Последният ми код е този и ми даде 100 точки.

  int number1 = int.Parse(Console.ReadLine());
        int number2 = int.Parse(Console.ReadLine());
        int number3 = int.Parse(Console.ReadLine());

        
        



        if ((number1 > number2) && (number1 > number3))
        {
            if (number2 > number3)
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
        
       
       
        if ((number1 > number2) && (number1 > number3))
        {
            if (number3 > number2)
            { 
                Console.WriteLine($"{number1}" + " " + $"{number3}" + " " + $"{number2}");
            }
        }
       
       
        if ((number1 > number2) && (number1 < number3))
        {
            if  (number3 > number2)
            {
                    Console.WriteLine($"{number3}" + " " + $"{number1}" + " " + $"{number2}");
            }
        }



        if ((number1 < number2) && (number1 > number3))
        {
            if (number2 > number3)
            { 
                Console.WriteLine($"{number2}" + " " + $"{number1}" + " " + $"{number3}");
            }
        }
        
        if ((number1 < number3) && (number2 > number3))
        {
            if (number2 > number1)
            {
                Console.WriteLine($"{number2}" + " " + $"{number3}" + " " + $"{number1}");
            }
        }
       
        if ((number1 < number2) && (number2 < number3))
        {
            if (number3 > number1 )
            {
                Console.WriteLine($"{number3}" + " " + $"{number2}" + " " + $"{number1}");
            }
        }


        if (number1 == number2)
        {
            if ((number1 = number2) > number3)
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
        
        
        if (number1 == number2) 
        {
            if ((number1 = number2) < number3)
            {
                Console.WriteLine($"{number3}" + " " + $"{number1}" + " " + $"{number2}");
            }
        }
        
        
        if (number1 == number3)
        {
            if ((number1 = number3) < number2)
            {
                Console.WriteLine($"{number2}" + " " + $"{number1}" + " " + $"{number3}");
            }
        }
        
        if (number1 == number3) 
        {
            if ((number1 = number3) > number2)
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
        
        if (number2 == number3) 
        {
            if ((number2 = number3) > number1)
            {
                Console.WriteLine($"{number2}" + " " + $"{number3}" + " " + $"{number1}");
            }
        }
        
        
        if (number2 == number3) 
        {
            if ((number2 = number3) < number1)
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
                
        
        if (number1 == number2) 
        {
            if (number2 == number3)
            {
                Console.WriteLine($"{number1}" + " " + $"{number2}" + " " + $"{number3}");
            }
        }
1 Like

А вместо да правиш отделни if проверки , защо не ползваш else ? вътре в нест-натия if