Решение 5 задач с одномерными массивами в одной программе - C#
Формулировка задачи:
Последние 5 задач из этой темы простые программына С#
26. В одномерном массиве, состоящем из N вещественных элементов вычислить сумму отрицательных элементов массива.
27. В одномерном массиве, состоящем из N вещественных элементов вычислить произведение элементов массива, расположенных между максимальным и минимальным элементом.
28. В одномерном массиве, состоящем из N целочисленных элементов вычислить произведение элементов с четными номерами.
29. В одномерном массиве, состоящем из N целочисленных элементов вычислить минимальный элемент массива.
30. В одномерном массиве, состоящем из N целочисленных элементов вычислить индекс максимального элемента массива.
Объединил в одной программе,пользователю pumma пригодиться да и всем остальным тоже кому интересно изучить примитивные действия с одномерными массивами
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ForForum1
{
class Program
{
public static void sumotric(double[] myArr)
{
double sum=0;
for (int i = 0; i < myArr.Length; i++)
{
if (myArr[i] < 0)
sum += myArr[i];
}
Console.WriteLine("Сумма отрицательных элементов = "+sum);
}
public static void proizvedenie(double[] myArr)
{
double proizvd = 1;
int min = 0;
int max = 0;
for (int i = 1; i < myArr.Length; i++)
{
if (myArr[i] < myArr[min])
min = i;
else if (myArr[i] > myArr[max])
max = i;
}
int startindex = Math.Min(min, max), endindex = Math.Max(min, max);
for (int i = startindex; i < endindex; i++)
{
proizvd *= myArr[i];
}
Console.WriteLine("Произведение между минимальным и максимальным элементом = " + proizvd);
}
public static void proizvedeniechetnoe(double[] myArr)
{
double proizchet = 1;
Console.WriteLine("Элементы с чётными номерами/индексами");
for (int i = 0; i < myArr.Length; i+=2)
{
proizchet *= myArr[i];
Console.WriteLine(myArr[i] + " ");
}
Console.WriteLine("Произведение элементов с чётными номерами/индексами = "+ proizchet);
}
public static void minelement(double[] myArr)
{
double mine = 0;
for (int i = 0; i < myArr.Length; i++)
{
if (mine > myArr[i])
mine = myArr[i];
}
Console.WriteLine("Минимальный элемент одномерного массива = "+ mine);
}
public static void maxindex(double[] myArr)
{
double maxi = 0;
int index = 0;
for (int i = 0; i < myArr.Length; i++)
{
if (maxi <= myArr[i])
{
maxi = myArr[i];
index = i;
}
}
Console.WriteLine("Максимальный индекс одномерного массива = " + index);
}
static void Main(string[] args)
{
int n,symb;
Random rand = new Random();
Console.WriteLine("Введите количество элементов массива");
n = Convert.ToInt32(Console.ReadLine());
double [] myArr = new double[n];
Console.WriteLine("Полученный массив вещественных чисел:");
for (int i = 0; i < n; i++)
{
myArr[i]=rand.Next(-20,20);
Console.Write(myArr[i]+ " ");
}
Console.WriteLine();
do
{
Console.Write("Меню:\n1 - Вычислить сумму отрицательных элементов массива\n2 - Вычислить произведение элементов массива, расположенных между максимальным и минимальным элементом\n3 - Вычислить произведение элементов с четными номерами \n4 - Вычислить минимальный элемент массива \n5 - Вычислить индекс максимального элемента массива \n6 - Выход из программы \nВыберите нужный вам пункт меню: ");
symb = int.Parse(Console.ReadLine());
switch (symb)
{
case 1:
sumotric(myArr);
break;
case 2:
proizvedenie(myArr);
break;
case 3:
proizvedeniechetnoe(myArr);
break;
case 4:
minelement(myArr);
break;
case 5:
maxindex(myArr);
break;
case 6:
Environment.Exit(0);
break;
default:
Console.WriteLine("Ошибка!Можно выбрать только пункты - 1,2,3,4,5,6");
break;
}
Console.ReadLine();
}
while (symb != 6);
Console.ReadKey();
}
}
}Решение задачи: «Решение 5 задач с одномерными массивами в одной программе»
textual
Листинг программы
double myPow27 = 1; var _a = a.SkipWhile(i => i != a.Max() && i != a.Min()); var max = a.Max(); var min = a.Min(); _a.TakeWhile((x, i) => _a.First() == max ? i != a.ToList().IndexOf(min + 1) : i != a.ToList().IndexOf(max + 1)) .ToList().ForEach(i => myPow27 *= i);