我是c ++的新手,我要做的就是用一段文字或段落来计算一个字母出现的次数,并将其存储到一个名为频率数组的数组中。
下面的代码工作到一定程度,如果用户键入hello frequencyarray存储11121,如果用户键入aaba频率数组存储1213,会发生什么 我不希望运行总计我希望数组存储1121和31.所以如果出现相同的字母,它会向数组添加1。
谢谢大卫
#include <iostream> //for cout cin
#include <string> //for strings
#include <fstream> //for files
using namespace std;
int main()
{
string text;
int frequencyarray [26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
cout << "Enter Word: ";
cin >> text;
//***************************COUNT OCCURANCES************************
for (int i(0); i < text.length(); i++)
{
char c = text[i];
c = toupper(c);
c -= 65;
if (c < 26 || c >=0)
{
frequencyarray[c]++;
cout << frequencyarray[c];
}
}
system ("pause");
return(0);
}`
答案 0 :(得分:2)
如果您不想要运行总计,请不要在计算出现次数的周期内使用cout << freqencyarray[c];
。
答案 1 :(得分:0)
试试这个
#include <iostream> //for cout cin
#include <string> //for strings
#include <fstream> //for files
#include <algorithm>
using namespace std;
int main()
{
string text;
int frequencyarray [26]={0};
cout << "Enter Word: ";
cin >> text;
//***************************COUNT OCCURANCES************************
for (int i(0); i < text.length(); i++)
{
char c = text[i];
c = toupper(c);
c -= 65;
if (c < 26 || c >=0)
{
frequencyarray[c]++;
}
}
std::for_each(std::begin(frequencyarray), std::end(frequencyarray), [](int i)
{
std::cout << i << ",";
});
std::cout << "\n";
system ("pause");
return(0);
}