Помогите с программкой на cДан массив из n слов случайной длины
Помогите с программкой на 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("Гласных больше чем согласных:\n Task1(s).Aggregate("", (current, t) =gt; current + t.ToUpper() + " ")");
Console.WriteLine();
Console.WriteLine("Гласных больше чем согласных:\n Task1Regex(s).Aggregate("", (current, t) =gt; current + t.ToUpper() + " ")");
Console.ReadLine();
catch(Exception e)
Console.WriteLine(e);
Console.ReadLine();
private static IEnumerablelt;stringgt; 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 lt; words.Count; i++)
sb.AppendLine("Слово[i] = words[i].ToUpper()");
Console.Write(sb.ToString());
var result = new Listlt;stringgt;();
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 gt; 0)
result.Add(word);
return result;
private static IEnumerablelt;stringgt; 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 lt; ms.Count; i++)
sb.AppendLine("Слово[i] = ms[i].Value.ToUpper()");
Console.Write(sb.ToString());
var result = new Listlt;stringgt;();
for (var i = 0; i lt; 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 gt; 0)
result.Add(v);
return result;
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("Гласных больше чем согласных:\n Task1(s).Aggregate("", (current, t) =gt; current + t.ToUpper() + " ")");
Console.WriteLine();
Console.WriteLine("Гласных больше чем согласных:\n Task1Regex(s).Aggregate("", (current, t) =gt; current + t.ToUpper() + " ")");
Console.ReadLine();
catch(Exception e)
Console.WriteLine(e);
Console.ReadLine();
private static IEnumerablelt;stringgt; 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 lt; words.Count; i++)
sb.AppendLine("Слово[i] = words[i].ToUpper()");
Console.Write(sb.ToString());
var result = new Listlt;stringgt;();
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 gt; 0)
result.Add(word);
return result;
private static IEnumerablelt;stringgt; 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 lt; ms.Count; i++)
sb.AppendLine("Слово[i] = ms[i].Value.ToUpper()");
Console.Write(sb.ToString());
var result = new Listlt;stringgt;();
for (var i = 0; i lt; 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 gt; 0)
result.Add(v);
return result;
Варвара
Ограничения на 80 символов нет, не принято такое в шарпе
Владик
Большие символы либо нет здесь не главно, программа написана так чтобы учитывались и огромные и маленькие буквы
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей
Математика.
Определить предложения какие они по цели высказывания и по интонации
Русский язык.
"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.
Русский язык.
на одной грядке коротышки посадили 3 ряда морковок по 8 штук
Разные вопросы.
эссе на тему какое образование дается в каждой семье
Қазақ тiлi.
Put the verb in brackets into the Present Indefinite.
1The Volga ,
Английский язык.
Сколько стоит коктейль молочный? Точную цену надо?
Математика.
Составить рассказ Из чего складывался культ монарха помазанника Божьего?
История.
Облако тегов