Сортировка массивов ввода / вывода

Я искал некоторую помощь в сортировке массива. Я должен сделать это таким образом, но я получаю некоторые сообщения об ошибках, которые я не понимаю, такие как:

  1. [ПРЕДУПРЕЖДЕНИЕ поиск имени ‘индекса’ изменен.
  2. соответствует этому ‘char * index [const char *, int] и стандартным правилам ISO
  3. соответствует этому индексу по старым правилам
  4. недопустимые типы int&[char () (const char *, int)] для подстрочного индекса массива
  5. в глобальном масштабе

У меня есть некоторое подозрение, что это такое, но немного потеряно, как это исправить.
Файл, который я открываю, — это предложение, которое гласит: Оливер был Золотистым ретривером, чей мех был длинным и золотистым.

Как вы можете сказать, я полный новичок, поэтому любые советы будут высоко оценены Спасибо заранее!

#include <iostream>
#include <fstream>
using namespace std;
void swap_values(int& v1, int& v2);
int index_of_smallest(int list[],int start_index, int number_used);
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;
ofstream outFile;

cout<<"This is the text of the file:"<<endl;

outFile.open("C:/temp/Data_Chapter_7_8.txt");
if(!outFile)
{
cout<<"Cannot open file."<<endl;
}

inFile.open("C:/temp/Data_Chapter_7_8.txt");

if (!inFile)
{
cout << " Cannot open file." <<endl;
}
initialize(letterCount);
inFile.get(ch);

while (inFile.get(ch))
{
int index;
readText(inFile,ch,letterCount);
index++;
}
totalCount(letterCount);

inFile.close();

system("PAUSE");
return 0;
}
void initialize(int list[])
{
for(int x = 0;x<26;x++)
list[x] = 0;
}
void characterCount (char ch, int list[])
{
ch = tolower(ch);
if(static_cast<int>(ch)>=97&&(static_cast<int>(ch)<=122))
list[static_cast<int>(ch)-97]++;
}
void readText(ifstream& intext, char& ch, int list[])
{
if (ch != '.')
{
characterCount (ch,list);
}
}
void totalCount(int letterCount[])
{
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 number_used)
{
int index_of_next_smallest;
for(int index= 0; index<number_used -1; index++)
index_of_next_smallest = index_of_smallest(list, index,number_used);
swap_values(list[index],list[index_of_next_smallest]);
}
}
int index_of_smallest(int list[], int start_index, int number_used);
{
int min = list[start_index];
index_of_min = start_index;
for (int index= start_index + 1; index < number_used; index++)
if (list[index]>min)
{
min = list[index];
index_of_min = index;
}
return index_of_min;
}
void swap_values(int& v1, int& v2)
{
int temp;
temp = v1;
v1 = v2;
v2 = temp;
}

0

Решение

Внутри вашего Sort функция, изменение

for(int index= 0; index<number_used -1; index++)

в

int index;
for(index = 0; index < number_used-1; index++)

потому что вам нужен доступ index после окончания цикла

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector