[Homework] C# Basics - Conditional Statements
Здравейте,
Отварям тема за новото домашно.
Решенията ми ще следват едно по едно след като съм готов с всяко от тях :)
1. Problem 1 - Exchange If Greater . Използвал съм XOR алгоритъм за размяна на стойностите на две променливи без да е необходима трета. Повече инфо тук: XOR_swap_algorithm .
Така представено решението ми работи само за целочислен тип.
В тази задача третата проверка е объркана. Трябва резултата да е 4.5 5.5 (по условие). Втората грешка в условието е, че стойностите не са целочислени (третата проверка).
2. Problem 2 - Bonus Score . Използвал съм switch-case.
3. Problem 3 - Check for a Play Card. Използвал съм switch statement.
4. Problem 4 - Multiplication Sign. Допълнителна информация към задачата Subset_sum_problem . Така написана задачата обхваща 8 случая при комбинация на всички позиции с положителна и отрицателна стойност. Използвал съм if оператори.
5. Problem 5 - The Biggest of Three Numbers . Използвал съм if-else.
6. Problem 6 - The Biggest of Five Numbers. Използвал съм 5 условия if-else.
7. Problem 7 - Sort 3 Numbers with Nested Ifs . Използвал съм if-else.
8. Problem 8 - Digit As Word . Използвал съм switch statement.
9. Problem 9 - Play with Int, Double and String . Използвал съм switch statement.
10.//TODO. Как се парсва дата и време Инфо от msdn .
11.//TODO
12.//TODO
Имам проблем с 6та задача...
Сравнявам стойностите на всички въведени числа, ОК, до тук добре , работи ако въведа различни стойности за всички числа или поне най-високата стойност да не се повтаря. Но реша ли да въведа примерно 1,2,3,4,4 не ми вади никакъв резултат.
Та въпроса ми е: трябва ли да правя сравнения с равенства,за всички възможни комбинации , защото това ще удължи и усложни кода страшно много (ако се опитам да го вместя само в 5 if , както е в условието) или има по-лесен вариант?
P.S.: С 5та задача направих отделно else if за всички възможни равенства,но тук числата са 5 и ще е доста дълго
5-та задача е за сравняване на 3 числа. Представеният код от автора на темата не е добър по мойте стандарти - липсва всякакъв user prompt за какво се иска да се вкара и как трябва.
Моето решение е следното :
http://pastebin.com/tAvtZVy2
Това което имаш предвид е 6-та задача. Нея съм я направил по същият начин като 5-та. Пак става с IF , но е прекалено дълго. Math.Max е добро решение.
Да ...извинявам се! Въпроса се отнася за 6та задача, но условиет гласи: "Write a program that finds the biggest of five numbers by using only five if statements."
Но възможностите за равенства между числата са много, както между две ,така и между три и четири от тях и ако трябва да изброя всички варианти, кода ще стане нечетим.За това питам за по-кратък вариант ,но да отговаря на условието.