Предмет: Информатика,
автор: mops43
Помогите с задачей C#! Ввести одномерный массив , вывести его. Выяснить, какое число в массиве встретится ранее – положительное или отрицательное (нули не рассматривать). Если положительное – найти в массиве максимальный элемент и возвести его в квадрат, если отрицательное – возвести в квадрат минимальный элемент.
archery:
Linq использовать можно? Списки вместо массивов?
Ответы
Автор ответа:
0
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");
}
}
Похожие вопросы
Предмет: Русский язык,
автор: mashadog1324
Предмет: Литература,
автор: komilovamir750
Предмет: Алгебра,
автор: amitag152
Предмет: Биология,
автор: simka052000