• Помогите написать программу на c#
    Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только заглавные латинские буквы. Найти и вывести все слова, у которых число гласных букв превышает число согласных

Ответы 1

  • using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;internal static class Program{    private const string glasnye_ = "aeiouy";    private const string soglasnye_ = "bcdfghjklmnpqrstvwxz";    private static void Main()    {        try        {            Console.WriteLine("Введите строку слов (любые символы будут считаться разделителями)");            var s = Console.ReadLine();            Console.WriteLine($"Гласных больше чем согласных: {Task1(s).Aggregate("", (current, t) => current + t.ToUpper() + " ")}");            Console.WriteLine();            Console.WriteLine($"Гласных больше чем согласных: {Task1Regex(s).Aggregate("", (current, t) => current + t.ToUpper() + " ")}");            Console.ReadLine();        }        catch(Exception e)        {            Console.WriteLine(e);            Console.ReadLine();        }    }    private static IEnumerable<string> Task1(string s)    {        Console.ForegroundColor = ConsoleColor.Cyan;        Console.WriteLine("Без помощи регулярных выражений");        var words = s.Split(new[] {' ', '-', ',', '.', '*', ':', ';', '_'}, StringSplitOptions.RemoveEmptyEntries).ToList();        var sb = new StringBuilder();        for (var i = 0; i < words.Count; i++)            sb.AppendLine($"Слово[{i}] = {words[i].ToUpper()}");        Console.Write(sb.ToString());        var result = new List<string>();        foreach (var word in words)        {            var k = 0;            foreach (var c in word.ToLower().ToCharArray())            {                k += glasnye_.Contains(c) ? 1 : 0;                k -= soglasnye_.Contains(c) ? 1 : 0;            }            if (k > 0)                result.Add(word);        }        return result;    }    private static IEnumerable<string> Task1Regex(string s)    {        Console.ForegroundColor = ConsoleColor.Green;        Console.WriteLine("С регулярными выражениями");        var ms = Regex.Matches(s, @"[A-z]+", RegexOptions.IgnoreCase);        var sb = new StringBuilder();        for (var i = 0; i < ms.Count; i++)            sb.AppendLine($"Слово[{i}] = {ms[i].Value.ToUpper()}");        Console.Write(sb.ToString());        var result = new List<string>();        for (var i = 0; i < ms.Count; i++)        {            var v = ms[i].Value;            var k = Regex.Matches(v, $"[{glasnye_}]", RegexOptions.IgnoreCase).Count;            k -= Regex.Matches(v, $"[{soglasnye_}]", RegexOptions.IgnoreCase).Count;            if (k > 0)                result.Add(v);        }        return result;    }}
    • Автор:

      louis3b9k
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years