Given a pair of words (the first is the correct spelling and the second is the contestant’s spelling of the given word) determines if the word is spelled correctly.
The degree of correctness is as follows:
Note: If the length of the strings is not equal then we need to print wrong.
Write a program to find the word spelled correctly or not.
using System;
namespace ConsoleApplication2
{
internal class Program
{
static void Main()
{
Console.Write("Введите первое слово: ");
string word_1 = Console.ReadLine(); // Первое правильное слово
Console.Write("Введите второе слово: ");
string word_2 = Console.ReadLine(); // Второе вводимое слово
int length = word_1.Length - word_2.Length; // Длина введенного пользователем слова
byte counter = 0; // Счетчик ошибок
byte stop = (byte) word_2.Length; // Эта переменная нужна чтобы узнать длину слова и урегулировать цикл. И чтобы синтаксис был проще
if (word_2.Length - word_1.Length > 0) // Если пользователь ввел одну лишнюю букву, то цикл будет на раз меньше и прибавится ошибка
{
stop -= (byte) (word_2.Length - word_1.Length); // чтобы не делать цикл длинным и не выходить вне границ массива!
counter += (byte) (word_2.Length - word_1.Length); // чтобы прибавить ошибку
}
for (int i = 0; i < stop-1; i++) // проверка правописания
if (word_1[i] != word_2[i] && word_1[i] != word_2[i+1])
counter++;
// Здесь внизу что-то улучшить или удалить какую нибудь строчку не получится!
// Потому-что здесь проверяется и синтаксис и длина слова!
if(counter == 0 && length == 0)
Console.WriteLine("Правильно!");
else if(counter == 0 && word_2.Length - word_1.Length <= 2 && word_2.Length - word_1.Length >= 0)
Console.WriteLine("Почти правильно!");
else if(counter == 0 && word_2.Length - word_1.Length >= 3)
Console.WriteLine("Неправильно!");
else if(counter <= 2 && length >= 1 && length <=2)
Console.WriteLine("Почти правильно!");
else if(counter >= 3 || length >=3 || length < 0)
Console.WriteLine("Неправильно!");
Console.ReadLine();
}
}
}
Comments
Leave a comment