using System;
namespace Task16
{
class Program
{
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
// Ввод размера массива
Console.Write("Введите размер массива N: ");
int N;
while (!int.TryParse(Console.ReadLine(), out N) || N <= 0)
{
Console.Write("Ошибка! Введите положительное целое число: ");
}
double[] A = new double[N];
// Ввод элементов массива
Console.WriteLine($"\nВведите {N} элементов массива:");
for (int i = 0; i < N; i++)
{
Console.Write($"A[{i}] = ");
while (!double.TryParse(Console.ReadLine(), out A[i]))
{
Console.Write("Ошибка! Введите число: ");
}
}
// Вывод исходного массива
Console.WriteLine("\nИсходный массив:");
for (int i = 0; i < N; i++)
{
Console.Write($"{A[i]} ");
}
Console.WriteLine("\n");
// ========== ЗАДАНИЕ 16 ==========
Console.WriteLine("========== ЗАДАНИЕ 16 ==========");
// 16а) Два положительных числа
int countPosPair = 0;
for (int i = 0; i < N - 1; i++)
{
if (A[i] > 0 && A[i + 1] > 0)
countPosPair++;
}
Console.WriteLine($"а) Количество соседств двух положительных чисел: {countPosPair}");
// 16б) Два числа разного знака
int countDiffSign = 0;
for (int i = 0; i < N - 1; i++)
{
if ((A[i] > 0 && A[i + 1] < 0) || (A[i] < 0 && A[i + 1] > 0))
countDiffSign++;
}
Console.WriteLine($"б) Количество соседств двух чисел разного знака: {countDiffSign}");
// 16в) Два числа одного знака, |первое| > |второе|
int countSameSignAbs = 0;
for (int i = 0; i < N - 1; i++)
{
bool sameSign = (A[i] > 0 && A[i + 1] > 0) || (A[i] < 0 && A[i + 1] < 0);
if (sameSign && Math.Abs(A[i]) > Math.Abs(A[i + 1]))
countSameSignAbs++;
}
Console.WriteLine($"в) Количество соседств (один знак, |первое| > |второе|): {countSameSignAbs}");
// 16г) Четное число и нечетное число с нечетным индексом
int countEvenOddIndex = 0;
for (int i = 0; i < N - 1; i++)
{
// Приводим к целым для проверки четности
int firstInt = (int)A[i];
int secondInt = (int)A[i + 1];
// Проверка: первое четное, второе нечетное, и индекс второго элемента нечетный (считая с 1)
bool firstEven = (firstInt % 2 == 0);
bool secondOdd = (secondInt % 2 != 0);
bool secondIndexOdd = ((i + 1) % 2 != 0); // индексация с 1
if (firstEven && secondOdd && secondIndexOdd)
countEvenOddIndex++;
}
Console.WriteLine($"г) Количество соседств (четное + нечетное число с нечетным индексом): {countEvenOddIndex}");
Console.WriteLine("\nНажмите любую клавишу для выхода...");
Console.ReadKey();
}
}
}