#include <iostream>
#include <string>
using namespace std;
int score(string s);
char scrabbleLetters[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int scrabblePoints[] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10};
int main()
{
string sWord;
cout << "Enter the scrabble word you'd like to score.";
cin >> sWord;
cout << "You scored " << score(sWord)<< " points for that word!";
}
int score(string s)
{ int points = 0;
for (int i = 0; i < s.length(); i++)
{
for (int j = 0; j < scrabbleLetters.length(); j++)
{
if (s[i] == scrabbleLetters[j])
points += scrabblePoints[j];
}
}
return points;
}
Я не могу понять, почему мой код не компилируется. Предполагается, что программа запрашивает у пользователя слово, а затем записывает слово на основе точек на букву.Scrabble point counter C++
Текущая ошибка, которую я получаю: «error: запрос для длины члена» в «scrabbleLetters», который относится к классу non-class «char [26]» |
Стек сниппет не предназначены для C++, FYI. –
Этот пример использования действительно требует «std :: map» вместо сохранения двух параллельных массивов. –
CoryKramer
Вы, кажется, запутываете Java с C++. Перечитайте главу своего учебника, в которой представлены массивы. Он должен включать код, который демонстрирует, как использовать их в циклах. –