Тема: Вивести процентне співвідношення двох слів
#include <iostream>
#include <string>
using namespace std;
double per(string word, string word2) {
int length = 0;
double len_ratio = 0;
double len_percent = 0;
double d_ret = 0;
int count = 0;
if(word.size() == word2.size())
length=word2.size();
if(word.size() > word2.size()) {
length = word2.size();
len_ratio = word2.size() / word.size();
}
if(word.size() < word2.size()) {
length = word.size();
len_ratio = word.size() / word2.size();
}
len_percent = len_ratio * 100;
for(int i = 0; i < length; i++) {
if(word2[i] == word[i])
count++;
}
d_ret = (double)count / (double)length * 100.0;
if(word.size() != word2.size()) {
d_ret = (double)count / (double)length * 100.0;
d_ret = (d_ret + len_percent) / 2;
}
return d_ret;
}
int main(int argc, char **argv) {
string loc_str;
cout << "Locale (uk, en): ";
cin >> loc_str;
setlocale(LC_ALL, loc_str.c_str());
cout << "Word1, word2: ";
string word1, word2;
cin >> word1 >> word2;
cout << "Result: " << per(word1, word2) << endl;
return 0;
}
Помилок у коді немає. Треба виправити недоліки алгоритму.
Наприклад, їжачок і їжак має співпадати на 50%, а співпадає на 37.5%
Locale (uk, en): uk
Word1, word2: їжачок їжак
Result: 37.5