Я отправляю массив имен в функцию, которая должна вычислять длину каждого имени и возвращать наибольшее из них в виде количества символов. Мое сравнение между longest и names [i] .length () никогда не соответствует действительности. Я инициализирую самое длинное в -1, поэтому имя должно заменить -1 длиной символов в этом имени, однако в конце функции оно возвращает самое длинное с моим начальным значением -1
#include <iostream>
#include <string>
using namespace std;
int findLongestName(string names[], int numNames);
int main() {
string names[25] {"Bob Hope", "Steve Nice", "Mary Jane", "James Higgenbothem", "Ace Blue"};
int numNames = 5;
int longName;
longName = findLongestName(names, numNames);
cout << "Longest name is " << longName << " characters.\n";
system("PAUSE");
return 0;
}
int findLongestName(string names[], int numNames) {
int longest = -1;
for (int i = 0; i < numNames; i++) {
if (names[i].length() > longest) {
longest = names[i].length();
}
}
return longest;
}
Может кто-то посмотрите и объясните, что я делаю не так? Я должен / хочу получить 18 обратно из функции для имени Джеймс Хиггенботем.