我想知道是否有人可以帮助我对这个数组进行排序,我对如何在这个项目中准确地实现它有点迷茫。因为它是硬件,所以不要透露整个答案,而是将我推向正确的方向。项目如下: 编写一个程序,读取一行文本并输出文本中出现的所有字母的列表以及每个字母在该行中出现的次数。以用作标记值的句点结束该行。字母应按以下顺序使用:从最高到最低。假设输入全部使用小写字母。几个问题。1.我在对数组进行排序时是否正确?2.在将排序数组放入我的代码之前,当代码编译时,它会出现一个空白屏幕。有什么办法可以解决这个问题?
如果写得不好,请致歉,并提前感谢您的帮助!
inlcude <iostream>
#inlcude <fstream>
using namespace std;
void initialize(int list[]);
void Sort(int list[],int& num);
void characterCount(char ch, int list[]);
void readText(ifstream& intext, char& ch, int list[]);
void totalCount(int list[]);
int main()
{
int index,letterCount[26];
char ch;
ifstream inFile;
infile.open("C:/temp/Data_Chapter_7_8.txt");
if (!inFile)
{
cout << " Cannot open file." <<endl;
}
initialize(letterCount);
infile.get(ch);
while (inFile)
{
int index;
readText(inFile,ch,letterCount)
index++;
inFile.get(ch);
}
totalCount(index, letterCount);
inFile.close();
system("PAUSE");
return 0;
}
//initializes array letterCount to 0
void initialize(int list[])
{
for(int x = 0;x<26;x++)
list[x] = 0
}
//increments the letter count. Makes sure counting letters.
void characterCount (char ch, int list[])
{
int index;
ch = tolower(ch);
if(static_cast<int>(ch)>=97&&(static_cast<int>(ch)<=122))
letterCount[static_cast<int>(ch)-97]++;
}
void readText(ifstream& intext, char& ch, int list[])
{
while (ch != '.')
{
characterCount (ch,list);
intext.get(ch);
}
}
//displays data
void totalCount(int list[])
{
for(int x=0;x<26;x++)
if(letterCount[x]>0)
cout<<static_cast<char>(x+97)<<" "<<letterCount[x]<<endl;
}
void Sort(int list[],int& num)
{
int i,j,flag = 1;
int temp;
int numLength = num.length();
for (i=1;(i<=numLength)&&flag; i++)
{
flag = 0;
for (j=o; j<(numLength-1);j++0
{
if(num[j+1]>num[j])
{
temp = num[j];
num[j] = num[j+1];
num[j+1]=temp;
flag = 1;
}
}
}
return;
}