Найти сумму элементов массива, расположенных после последнего элемента, равного нулю - C# (192227)
Формулировка задачи:
Было задание : В одномерном массиве , состоящем из п действительных элементов , вычислить : количество положительных элементов массива ; сумму элементов массива , расположенных после последнего элемента равного нулю.
Превратить массив таким образом , чтобы сначала располагались все элементы , целая часть которых не превышает единицу , а затем - все остальные.
Проблема с последним : Превратить массив таким образом , чтобы сначала располагались все элементы , целая часть которых не превышает единицу , а затем - все остальные.
Помогите кто-то please . Очень нужно. Вот код : (сортировка должна ити отдельным методом)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
C2 l = new C2();
l.meji();
l.vvid();
l.getelevent();
l.suma();
l.kikist();
l.vuvid();
Console.ReadLine();
}
}
class C1
{
public double s, x;
public int k, n, i, u, j, c, b, aindex, y;
public double[] a = new double[1000];
public bool error;
public void meji()
{
Console.WriteLine("Введіть c");
c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введіть b");
b = Convert.ToInt32(Console.ReadLine());
n = b - c + 1;
}
public void vvid()
{
for (i = 0; i < n; i++)
{
Console.WriteLine("a" + "[" + (i+c) + "]=");
a[i] = Convert.ToDouble(Console.ReadLine());
}
}
public void vuvid()
{
for (i = 0; i < n; i++)
{
Console.WriteLine("a[" + (i+c) + "]=" +a[i]);
}
}
}
class C2 : C1
{
public void kikist()
{
for (i = 0; i < n ; i++)
{
if (a[i]>0)
{
k++;
}
}
Console.WriteLine("kikist=" + k);
}
public void suma()
{
j = 0;
s = 0;
for (i = 0; i < n; i++)
{
if (a[i] == 0)
{
j = i;
}
}
for (i = j; i < n; i++)
s += a[i];
Console.WriteLine("Summa=" + s);
}
public double this[int index]
{
set
{
if(index>=c && index>=b)
{
error=false;
a[index]=value;
}
else error = true;
}
get
{
if (index >= c && index <= b)
{
error = false;
return a[index - c];
}
else
{
error = true;
return 0;
}
}
}
public void getelevent()
{
Console.WriteLine("aindex=");
aindex = Convert.ToInt32(Console.ReadLine());
x = this[aindex];
if (error==true)
Console.WriteLine("елемент не існує");
else Console.WriteLine("a[" +aindex +"]=" +x);
}
}Решение задачи: «Найти сумму элементов массива, расположенных после последнего элемента, равного нулю»
textual
Листинг программы
using System;
namespace ConsoleApplication185
{
class Program
{
static void Main(string[] args)
{
var array = new double[] {3, 4, -0.6, -2.1, 1, 0.3, 0.1, 2.4};
Array.Sort(array, (f1, f2) =>(Math.Abs(f1) > 1).CompareTo(Math.Abs(f2) > 1));
Console.WriteLine(string.Join(", ", array));
Console.ReadLine();
}
}
}