2017-02-02 11 views
-3

私は出力を一緒に追加しようとしています。だから、出力が12になるのではなく、3になるようにしたいのですが、どうすればいいのかわかりません。ヘルプは非常に感謝しています。シンプルなパスワードハッシングプログラムC++

int returnVal(char x) 
{ 
return x - 96; 
} 


int main() { 
string s = "ab"; 

for (int i = 0; i < s.length(); i++) 
{ 
    cout << returnVal(s[i]);  
} 

return 0; 
} 
+2

現在の合計に戻り値を追加しますか? – NathanOliver

+0

それは私が思ったものです!どのようにそれを行うための任意の提案? – Jeroen

+0

正しいタイプの変数を作成し、それをゼロにして、forループ内で 'returnVal(s [i])'を追加します。 – NathanOliver

答えて

1

合計の値を返す必要があります。

[例]:

int returnVal(char x) 
{ 
    return x - 96; 
} 

int main() 
{ 
    string s = "ab"; 
    int totalValue = 0; 

    for (int i = 0; i < s.length(); i++) 
    { 
     totalValue += returnVal(s[i]);   
    } 
    cout << totalValue; 

    return 0; 
} 
3

使用std::accumulate

int main() 
{ 
    std::string s = "ab"; 

    std::cout << std::accumulate(s.begin(), s.end(), 0, [](int i, char c) { 
      return i + returnVal(c); 
     }) << std::endl; 
} 

live example

関連する問題