Сформировать последовательность уникальных чисел, содержащихся в строке, отсортировав их в порядке убывания - C#
Формулировка задачи:
Есть задание:
Проблема в том, что на выводе должен быть набор из
Из заданной строки сформировать последовательность уникальных чисел содержащихся в строке отсортировав их в порядке убывания.
По ней была написана такая программа:class Program
{
public static class yprajnenie
{
public static IEnumerable<double> chsl(string zadanie)
{
char[] znak = { ' ' };
string[] chislo = zadanie.Split(znak);
double [] a = new double[chislo.Length] ;
for(int i=0;i<chislo.Length; i++)
{
a[i] = double.Parse(chislo[i]);
}
double temp;
for (int i = 0; i <a.Length; i++)
{
for (int j = i + 1; j < a.Length; j++)
{
if (a[i] <= a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
foreach (double s in a)
yield return s;
}
}
static void Main(string[] args)
{
string stroka = Console.ReadLine();
foreach (double s in yprajnenie.chsl(stroka))
Console.WriteLine(s);
}
}уникальных
чисел. Как это можно реализовать? Заранее спасибоРешение задачи: «Сформировать последовательность уникальных чисел, содержащихся в строке, отсортировав их в порядке убывания»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Globalization;
class Program
{
static void Main()
{
string s = "1 3 5 1 8 3 6 8 9 6 5 7 8 16 7 823 76 8349 31 34 1 1 23 0";
foreach (var number in GetNumbers(s, ' '))
{
Console.WriteLine(number);
}
}
private static IEnumerable<int> GetNumbers(string s, char splitChar)
{
var numbers = s.Split(splitChar);
var set = new HashSet<int>();
foreach (string number in numbers)
{
set.Add(int.Parse(number));
}
int[] result = new int[set.Count];
int k = 0;
foreach (int x in set)
{
result[k++] = x;
}
for (int i = 0; i < result.Length; i++)
{
for (int j = i + 1; j < result.Length; j++)
{
if (result[i] <= result[j])
{
var temp = result[i];
result[i] = result[j];
result[j] = temp;
}
}
}
return result;
}
}