Как нули переместить в конец массива - C#
Формулировка задачи:
Вот задание (В одномерном массиве состоящем из n вещественных элементов, вычислить:
-максимальный элемент массива;
-Сумму элементов массива расположенных до последнего положительного элемента.
-Сжать массив удалив из него все элементы модуль которых находится в интервале [a,b]
Освободившиеся место в конце массива заполнить нулями.) все сделал но нули в конец не как не могу закинуть помогите только пожалуйста с пояснениями чтобы я понял.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication11 { class Program { static void Main(string[] args) { s1: Console.Write("Введите число вещественных чисел n="); int n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); int[] mas = new int[n]; Random rand = new Random((int)DateTime.Now.Ticks); for (int i = 0; i < mas.Length; i++) { mas[i] = rand.Next(-100, 101); Console.Write("{0,00} ", mas[i] ); } Console.WriteLine(); int sum = 0; for (int i = mas.Length - 1; i > 0; i--) if (mas[i] > 0) { for (int j = 0; j < i; j++) sum += mas[j]; break; } int max = mas[0]; // максимальный элемент for (int i = 1; i < n; ++i) if (mas[i] > max) max = mas[i]; Console.WriteLine("Максимальный элемент=" + max); Console.Write("Сумма равна=" + sum); Console.WriteLine(); Console.WriteLine("Введите а, а="); double a = double.Parse(Console.ReadLine()); Console.WriteLine("Введите b, b="); double b = double.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { if (Math.Abs(mas[i]) >= a && Math.Abs(mas[i]) <= b) mas[i]=0; Console.Write("{0,00} ", mas[i]); } Console.WriteLine(); goto s1; } } }
Решение задачи: «Как нули переместить в конец массива»
textual
Листинг программы
using System; using System.Linq; namespace ConsoleApplication11 { class Program { static void Main(string[] args) { while (true) { Console.Write("Введите число вещественных чисел n = "); int n = Convert.ToInt32(Console.ReadLine()); int[] mas = new int[n]; Random rand = new Random((int)DateTime.Now.Ticks); for (int i = 0; i < mas.Length; i++) { mas[i] = rand.Next(-100, 101); Console.Write("{0} ", mas[i]); } Console.WriteLine(); int sum = 0; for (int i = mas.Length - 1; i > 0; i--) { if (mas[i] > 0) { for (int j = 0; j < i; j++) { sum += mas[j]; } break; } } int max = mas.Max(); // максимальный элемент Console.WriteLine("Максимальный элемент = {0}", max); Console.WriteLine("Сумма равна = {0}", sum); Console.Write("Введите а, а = "); double a = double.Parse(Console.ReadLine()); Console.Write("Введите b, b = "); double b = double.Parse(Console.ReadLine()); int abs; for (int i = 0; i < mas.Length; i++) { abs = Math.Abs(mas[i]); if (abs >= a && abs <= b) { mas[i] = 0; } } mas = mas.Where(x => x != 0).Concat(mas.Where(x => x == 0)).ToArray(); foreach (int num in mas) { Console.Write("{0} ", num); } Console.WriteLine(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д