Loading...
PETJAH avatar PETJAH 0 Точки

Half Sum Element - Programming Basics C#

Когато стартирам програмата във Visual Studio всичко е наред, но в Judge всички проверки са грешни и в детайли не ми дава входа и изхода, които очаква, за да разбера къде е проблемът. Моля, за помощ! Благодаря!

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

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            var big = int.Parse(Console.ReadLine());
            var sum = big;
            for (var i = 2; i <= n; i++)
            {
                var a = int.Parse(Console.ReadLine());
                sum = sum + a;
                if (a > big) big = a;
            }
            if (big == (sum - big))
            {
                Console.WriteLine("Yes");
                Console.WriteLine("Sum  = " + sum);
            }
            else
            {
                Console.WriteLine("No");
                Console.WriteLine("Diff = " + Math.Abs(sum - big));
            }
        }
    }
}
 

Тагове:
0
Programming Basics
kolewmi avatar kolewmi 3 Точки

Упражнениe: Повторения с цикли – for-цикъл

Задачи за упражнение в клас и за домашно към курса "Основи на програмирането" @ СофтУни.

Тествайте решенията си в Judge системата: https://judge.softuni.bg/Contests/Compete/Index/1164

For-Loop - Exercise

2. Елемент, равен на сумата на останалите

Да се напише програма, която чете n-на брой цели числа, въведени от потребителя, и проверява дали сред тях съществува число, което е равно на сумата на всички останали. Ако има такъв елемент, печата "Yes", "Sum = "  + неговата стойност; иначе печата "No", "Diff = " + разликата между най-големия елемент и сумата на останалите (по абсолютна стойност).

=========================================================================

Според мен има грешка в логиката на решението и това ,че ви дава 100 от 100 нищо не означава.

Никъде в условието на задачата не е казано, че това число, което е равно на сумата на останалите трябва непременно да е най-голямото.

Какво ще се получи например, ако n=3, и се въведе вход :

 

Вход

3

5

6

-1

Изходът би трябвало да е:

Yes

Sum = 5 

Очевидно  5=6+ (-1) и е решение на задачата, защото е равно на сумата на всички останали.

При решението, което сте дали изходът ще е:

No

Diff = 2

Според мен правилното решение би изглеждало нещо подобно на това, но задачата става вече от масиви:

using System;

namespace _02._Half_Sum_Element
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] a = new int[n];
            int sum = 0;
            Boolean flag = false;
            int max = int.MinValue;
            for (int i = 0; i < n; i++)
            {
                a[i] = int.Parse(Console.ReadLine());
                sum = sum + a[i];
                if (a[i] > max)
                {
                    max = a[i];
                }
            }
                for (int j = 0; j < n; j++)
                {
                    if (sum - a[j] == a[j])
                    {
                        Console.WriteLine("Yes");
                        Console.WriteLine($"Sum = {a[j]}");
                        flag = true;
                    break;
                    }
                }
                if (flag == false)
                {
                    Console.WriteLine("No");
                    Console.WriteLine($"Diff = {Math.Abs(sum - max - max)}");
                }

            }
        }
    }
 

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