Вывести слова сообщения в порядке возрастания их длин - C#
Формулировка задачи:
Дана строка, нужно вывести слова сообщения в порядке возрастания их длин. Проставлюсь плюсами.
Решение задачи: «Вывести слова сообщения в порядке возрастания их длин»
textual
Листинг программы
// III. Дана строка, в которой содержится осмысленное текстовое сообщение. Слова
// сообщения разделяются пробелами и знаками препинания.
// Замечание. При решении задач из данного пункта использовать тип string или StringBuilder.
// Свой выбор обосновать.
// 10. Вывести слова сообщения в порядке возрастания их длин.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static char[] splitter = { ' ', '[', ']', '(', ')', '{', '}', '*', ',', '.', ';', ':', '\u2026', '#', '=' };
// 10. Вывести слова сообщения в порядке возрастания их длин.
static void Func_3_10(String s)
{
Console.WriteLine("\n10. Вывести слова сообщения в порядке возрастания их длин.");
Console.WriteLine("Заданная строка: '{0}' ", s);
String[] words = s.Split(splitter);
Object[,] w2 = new Object[2, words.Length];
int i, j;
int min = 0xFFFF;
int max = 0;
for (i = 0; i < words.Length; i++)
{
w2[0, i] = words[i].Length; // записываем длинну слова
w2[1, i] = words[i]; // записываем слово
if (words[i].Length < min)
{
min = words[i].Length; // находим минимальную длинну
}
if (words[i].Length > max)
{
max = words[i].Length; // находим максимальную длинну
}
}
for (j = min; j <= max; j++)
{
for (i = 0; i < words.Length; i++)
{
if ((int)w2[0, i] == j) // если длинна слова соответствует текущей длинне
{
Console.WriteLine("({0}) {1}", w2[0, i], w2[1, i]); // то выводим это слово
}
}
}
}
static void Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
String s;
// 10. Вывести слова сообщения в порядке возрастания их длин.
s = "Жучка Бабка Внучка Мурка Мышка Дед Ёжик Егерь"; // строка из предыдущего задания :)
Func_3_10(s);
}
}
}