Для начала не ходить по чужой памяти, если пользователь введёт 15, то вероятнее всего будет сегфолт, но не факт.
Первое:
#include <iostream>
#include <vector>
using std::cout;
using std::cin;
using std::endl;
int main()
{
std::vector<std::string> numbers = {
"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
int value;
while (cin >> value) {
if (value >= 0 && value < numbers.size())
cout << numbers.at(value) << endl;
}
return 0;
}
второе:
#include <algorithm>
#include <iostream>
#include <vector>
using std::cout;
using std::cin;
using std::endl;
int main()
{
std::vector<std::string> numbers = {
"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
std::string value;
while (cin >> value) {
auto it = std::find(numbers.begin(), numbers.end(), value);
if (it != numbers.end())
cout << std::distance(numbers.begin(), it) << endl;
}
return 0;
}