
Вопрос задан 01.08.2023 в 04:03.
Предмет Информатика.
Спрашивает Быкова Соня.
Помогите с задачей C#! Ввести одномерный массив , вывести его. Выяснить, какое число в массиве
встретится ранее – положительное или отрицательное (нули не рассматривать). Если положительное – найти в массиве максимальный элемент и возвести его в квадрат, если отрицательное – возвести в квадрат минимальный элемент.

Ответы на вопрос

Отвечает Леонардыч Евгений.
Using System;
using System.Collections.Generic;
using System.Linq;
internal class Program
{
private const bool handfree_ = true; //определяет вручную ли вводятся данные или рандомом
public static void Main()
{
try
{
var a = InitArray().ToArray();
PrintArray(a);
var positive = IsPositiveFirst(a);
var k = 0;
for (var i = 0; i < a.Length; i++)
{
if (positive && a[k] < a[i] || !positive && a[k] > a[i])
k = i;
}
a[k] = a[k] * a[k];
PrintArray(a);
}
catch(Exception e)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(e);
}
finally
{
Console.ReadLine();
}
}
public static IEnumerable<int> InitArray()
{
var random = new Random(DateTime.Now.Millisecond);
int n;
if (handfree_)
n = random.Next(100);
else
{
Console.Write("n = ");
n = int.Parse(Console.ReadLine());
}
var result = new int[n];
for (var i = 0; i < result.Length; i++)
{
result[i] = handfree_ ? random.Next(-100, 100) : int.Parse(Console.ReadLine());
}
return result;
}
public static void PrintArray(IEnumerable<int> a)
{
Console.Write("Array:");
foreach (var element in a)
{
Console.Write($" {element}");
}
Console.WriteLine();
}
public static bool IsPositiveFirst(IEnumerable<int> a)
{
foreach (var element in a)
{
if (element == 0)
continue;
return element > 0;
}
throw new Exception("Array is empty");
}
}
using System.Collections.Generic;
using System.Linq;
internal class Program
{
private const bool handfree_ = true; //определяет вручную ли вводятся данные или рандомом
public static void Main()
{
try
{
var a = InitArray().ToArray();
PrintArray(a);
var positive = IsPositiveFirst(a);
var k = 0;
for (var i = 0; i < a.Length; i++)
{
if (positive && a[k] < a[i] || !positive && a[k] > a[i])
k = i;
}
a[k] = a[k] * a[k];
PrintArray(a);
}
catch(Exception e)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(e);
}
finally
{
Console.ReadLine();
}
}
public static IEnumerable<int> InitArray()
{
var random = new Random(DateTime.Now.Millisecond);
int n;
if (handfree_)
n = random.Next(100);
else
{
Console.Write("n = ");
n = int.Parse(Console.ReadLine());
}
var result = new int[n];
for (var i = 0; i < result.Length; i++)
{
result[i] = handfree_ ? random.Next(-100, 100) : int.Parse(Console.ReadLine());
}
return result;
}
public static void PrintArray(IEnumerable<int> a)
{
Console.Write("Array:");
foreach (var element in a)
{
Console.Write($" {element}");
}
Console.WriteLine();
}
public static bool IsPositiveFirst(IEnumerable<int> a)
{
foreach (var element in a)
{
if (element == 0)
continue;
return element > 0;
}
throw new Exception("Array is empty");
}
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, я помогу вам с задачей! Вот пример решения на C#:
csharpusing System;
class Program
{
static void Main()
{
Console.WriteLine("Введите элементы массива через пробел:");
string input = Console.ReadLine();
// Разбиваем введенную строку на числа и создаем массив
string[] numbersArray = input.Split(' ');
int[] arr = new int[numbersArray.Length];
for (int i = 0; i < numbersArray.Length; i++)
{
arr[i] = int.Parse(numbersArray[i]);
}
// Выводим массив
Console.WriteLine("Массив: " + string.Join(", ", arr));
int firstPositiveIndex = -1;
int firstNegativeIndex = -1;
// Находим индекс первого положительного и отрицательного числа (нули не рассматриваем)
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > 0 && firstPositiveIndex == -1)
{
firstPositiveIndex = i;
}
else if (arr[i] < 0 && firstNegativeIndex == -1)
{
firstNegativeIndex = i;
}
}
// Возводим в квадрат максимальный элемент, если первое встреченное число было положительным,
// и минимальный элемент, если первое встреченное число было отрицательным
if (firstPositiveIndex != -1)
{
int maxElement = int.MinValue;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > maxElement)
{
maxElement = arr[i];
}
}
Console.WriteLine("Первое встреченное положительное число: " + arr[firstPositiveIndex]);
Console.WriteLine("Максимальный элемент массива: " + maxElement);
Console.WriteLine("Максимальный элемент в квадрате: " + (maxElement * maxElement));
}
else if (firstNegativeIndex != -1)
{
int minElement = int.MaxValue;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] < minElement)
{
minElement = arr[i];
}
}
Console.WriteLine("Первое встреченное отрицательное число: " + arr[firstNegativeIndex]);
Console.WriteLine("Минимальный элемент массива: " + minElement);
Console.WriteLine("Минимальный элемент в квадрате: " + (minElement * minElement));
}
else
{
Console.WriteLine("В массиве нет положительных или отрицательных чисел.");
}
}
}
Программа сначала считывает элементы массива, разбивает введенную строку на числа и создает одномерный массив arr
. Затем она ищет индексы первого положительного и отрицательного числа (пропуская нули) и затем находит максимальный или минимальный элемент массива в зависимости от типа первого встреченного числа. Используя условные конструкции, она выводит результаты на экран.
Пожалуйста, запустите программу и введите элементы массива через пробел для получения результата.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili