Другие языки программирования и технологии

Помогите, пожалуйста, срочно надо (С#).

1.В одномерном массиве, состоящем из n вещественных элементов, вычислить:
- максимальный элемент массива;
- сумму элементов массива, расположенных до последнего положительного элемента.
2.Определить, имеется ли в одномерном числовом массиве A из n элементов, хотя бы одна пара совпадающих по величине соседних элементов.
Kanat **
Kanat **
299
1.-----------
using System;

namespace Test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите размер массива -> ");
int n = int.Parse(Console.ReadLine()); // вводим размер массива
float[] numbers = new float[n]; // создаем массив
Random rnd = new Random();

for (int i = 0; i < n; i++)
{
numbers[i] = rnd.Next(-5, 5); // заполняем массив случайными числами от -5 до 5
}
Console.WriteLine("Максимальный элемент массива -> ");
float max = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
if (numbers[i] > max)
{
max = numbers[i]; // если элемент массива больше max, записываем число в max
}
}
Console.WriteLine(max); // выводим результат
//------------------------------
Console.WriteLine("Сумма элементов массива, расположенных до последнего положительного элемента -> ");
float summ = 0; // сумма
float sub = 0; // промежуточная сумма
for (int i = 0; i < numbers.Length; i++)
{
sub += numbers[i]; // прибавляем элемент в промежуточную сумму
if (summ > 0)
{
summ += sub; // если элемент массива положительный, прибавляем значение в сумму
sub = 0; // обнуляем промежуточную сумму
}

}
Console.WriteLine(summ); // выводим результат

Console.ReadLine();
}
}
}

2-------------
using System;

namespace Test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите размер массива -> ");
int n = int.Parse(Console.ReadLine()); // вводим размер массива
float[] numbers = new float[n]; // создаем массив
Random rnd = new Random();

for (int i = 0; i < n; i++)
{
numbers[i] = rnd.Next(-5, 5); // заполняем массив случайными числами от -5 до 5
}
Console.WriteLine("Имеется ли в массиве хотябы одна пара совпадающих по величине соседних элементов? ->");
float curr; // текущий элемент массива
float prev; // предыдущий элемент массива
bool flag = false; // есть ли совпадающие элементы
for (int i = 1; i < numbers.Length; i++)
{
curr = numbers[i];
prev = numbers[i - 1];
if (curr == prev)
{
flag = true;
break; // выходим из цикла
}
}
if (flag)
{
Console.WriteLine("Да!");
}
else
{
Console.WriteLine("Нет!");
}

Console.ReadLine();
}
}
}
Исраил Юлдашбаев
Исраил Юлдашбаев
7 119
Лучший ответ
Исраил Юлдашбаев в 1й программе опечатка. щас исправлю
Исраил Юлдашбаев в 1й вместо
if (summ > 0)
{
summ += sub; // если элемент массива положительный, прибавляем значение в сумму
sub = 0; // обнуляем промежуточную сумму
}
нужно
if (numbers[i] > 0)
{
summ += sub; // если элемент массива положительный, прибавляем значение в сумму
sub = 0; // обнуляем промежуточную сумму
}
Халльгрим Виглафссон в первой задаче перебор элементов лучше начинать с конца - тогда последний положительный превращается в первый :)
Помогу, спрашивай.