Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Stoyan777 avatar Stoyan777 0 Точки

Задачи масиви

Здравейте, някой може ли да ми каже и обясни решението на тези 2 задачи

Задача.1.
Да се напише програма, която въвежда от клавиатурата цяло число
2<=n<=30 и редица от цели числа, след което намира и извежда броя на
четните числа от редицата.
Примерен вход : 6

15 28 -5 -12 17 -9

Изход : 2

Задача.2.
Да се напише програма, която въвежда от клавиатурата цяло число
2<=n<=25 и редица от реални числа, след което намира и извежда
средноаритметичното на положителните елементи от редицата.
Примерен вход : 6
1.05 2.8 -5 -12.3 17 9.15
Изход : 7.5

Тагове:
0
Programming Basics with C# 24/04/2020 16:08:21
kkaraivanov avatar kkaraivanov 486 Точки

Задача 1:

using System;
using System.Linq;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] numbers = Console.ReadLine().Split().Select(int.Parse).ToArray();
            int counter = 0;

            for (int i = 0; i < n; i++)
            {
                int currentNumber = numbers[i];
                if (currentNumber % 2 == 0)
                {
                    counter++;
                }
            }

            Console.WriteLine(counter);
        }
    }
}

Задача 2:

using System;
using System.Linq;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            double[] numbers = Console.ReadLine().Split().Select(double.Parse).ToArray();
            int counter = 0;
            double number = 0;

            for (int i = 0; i < n; i++)
            {
                double currentNumber = numbers[i];
                int temp = (int) currentNumber;
                if (temp % 2 == 0)
                {
                    number += Math.Abs(currentNumber);
                    counter++;
                }
            }

            double divide = ((int)number * 1.0 )/ counter;
            Console.WriteLine($"{divide:f1}");
        }
    }
}

Какво точно не разбираш и искаш да ти се обясни?

0
RoumenRoussev avatar RoumenRoussev 121 Точки

Първата изисква да се намери броя на целите числа от редица с дължина между 2 и 30 числа:

namespace EvenNums
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] sequence = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();

            int count = 0;
            for (int i = 0; i < n; i++)
            {
                if (sequence[i] %2 == 0)
                {
                    count++;
                }  
            }

            Console.WriteLine(count);
        }
    }
}

 

Във втората се търси средноаритметичното на положителните елементи от редица с дължина между 2 и 25 числа:

using System;
using System.Linq;

namespace ArithmeticMeanPositiveElements
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            double[] sequence = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries).Select(double.Parse).ToArray();

            double sum = 0;
            int count = 0;
            for (int i = 0; i < n; i++)
            {
                if (sequence[i] > 0)
                {
                    sum += sequence[i];
                    count++;
                }
            }

            double average = sum / count;
            Console.WriteLine(average);
        }
    }
}

 

Не съм заложил случай, в който няма да има число според изискванията. Приемам, че входа ще гарантира поне 1 число в рамките на търсенето.

1
24/04/2020 21:56:21
krum_43 avatar krum_43 750 Точки

Здравей колега,

Забелязах много странни решения на втората задача.

Ето ти едно кратко решение и от мен:

https://pastebin.com/8g94qM2F

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