Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>
- using namespace std;
- int main(){
- setlocale(LC_ALL, "Russian");
- // В названиях легко запутаться, называйте переменные так чтобы логично и явно отразить суть ее предназначения
- // Неинициализированные элементы в массиве не обнуленные - они хранят себе мусор
- // ^Поэтому если указываете элементов больше чем используете - следите чтобы не захватить мусор
- string operation[6] = { "==", "!=", "<", ">", ">=", "<=" };
- string description[6] = { "равно", "не равно", "строгое меньше", "строгое больше", "нестрогое больше", "нестрогое меньше" };
- string word;
- bool flag = false;
- int index = 0;
- int searchPoints[6] = {0, 0, 0, 0, 0, 0};
- int maxSearchPoints;
- cout << "Введите слово\n";
- cin >> word;
- // Этот цикл пройдет по всему массиву операций и сравнит строки
- // Если найдется такое - вернет flag=true и index этого элемента.
- for (int i = 0; i < 6; i++){
- if(word == operation[i]){
- flag = true;
- index = i;
- }
- }
- // Если такой элемент нашелся - выводим его описание
- // Если нет - см else..
- if(flag) cout << description[index] << endl;
- else{
- cout << "Ой! Такого нет." << endl;
- for (int i = 0; i < word.length(); i++){ // Цикл для прохода по символам слова
- // Берем первый символ нашего слова и сравниваем его со всеми символами элементов массива операций
- // Если такой символ присутствует в элементе, добавляем ему +1 в массив
- for (int j = 0; j < 6; j++){ // Цикл для прохода по элементам массива операций
- for (int k = 0; k < operation[j][k]; k++){ // Цикл для прохода по символам элемента массива операций
- if(word[i] == operation[j][k]) searchPoints[j]++;
- } // Конец цикла по символам
- } // Конец цикла по элементам
- } // Конец цикла по символам
- // ОК.. 1:30 A.M. - самое время продолжить
- // Конструкция из трех циклов выше сделала нам массив searchPoints
- // В котором каждый элемент соответственно набрал какое-то количество "очков похожести"
- // Теперь нужно пройтись по этому массиву и выбрать, допустим тот у кого очков больше
- // Простейшая задачка уровня лабы: найти больший элемент в массиве
- // Пусть maxSearchPoints = searchPoints[0]
- maxSearchPoints = searchPoints[0];
- index = 0;
- for (int i = 1; i < 6; i++){
- if(searchPoints[i] > maxSearchPoints){
- maxSearchPoints = searchPoints[i];
- index = i;
- }
- }
- // Ну, собственно все:
- cout << "Возможно вы имели ввиду: " << operation[index] << endl;
- } // Конец else
- }
Add Comment
Please, Sign In to add comment