誰かがこの配列のソートを手伝ってくれるのではないかと思っていましたが、このプロジェクトで正確に実装する方法について少し迷っています。それはハードウェアであるため、全体の答えを明らかにするわけではありませんが、正しい方向に向けて私を押してください。プロジェクトは次のとおりです。テキスト行を読み取り、テキスト内に出現するすべての文字のリストと、各文字が行内に出現する回数を出力するプログラムを作成します。センチネル値として機能するピリオドで行を終了します。文字は次の順序で使用する必要があります: 高いものから低いものへ。入力にはすべて小文字が使用されていると仮定します。いくつか質問があります。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;
}