Мой Bubblesort ничего не сортирует и не даст мне пройти по ссылке - PullRequest
0 голосов
/ 30 января 2019

Для моего класса CS мы создаем программу, которая считывает числа, вычисляет уровень инфляции по этим двум числам, отправляет эти числа в массив, разбирает массив на пузырьки, а затем распечатывает этот массив после его сортировки.Тем не менее, я не могу заставить свою сортировку пузырей сортировать, либо есть ошибка компилятора, когда я использую &, либо там просто не сортируется.Кто-нибудь может помочь?Спасибо!#include использование пространства имен std;

double InflationRate(float old_cpi, float new_cpi);
double inflateRate;
void getCPIValues(float &old_cpi, float &new_cpi);
float swap_values(float&i, float&j);
void bubbleSort(float a[], int number_used);
float old_cpi=-1;
float new_cpi=-1;
const int MAX_RATES=20;
float a[MAX_RATES]={};
int main()   //C++ programs start by executing the function main
{


char Continue = 'y';
double total = 0;
int i=0;
do{
     getCPIValues(old_cpi, new_cpi);
     InflationRate(old_cpi, new_cpi);
     cout<< "Inflation rate is "<<inflateRate<<endl;
     total = total+inflateRate;
     cout << "Try again? (y or Y): ";
     i++;
     a[i-1]= inflateRate;
     cin >> Continue;
}while ((Continue == 'y')||(Continue == 'Y'));

cout<<"Average rate is "<<total/i<<endl;
int number_used= i-1;
for (int p; p<=number_used; p++)
{
    cout<<a[p]<<endl;
}

return 0;
}



double InflationRate(float old_cpi, float new_cpi)
{

    inflateRate = (new_cpi - old_cpi)/old_cpi*100;
    return(inflateRate);
}
void getCPIValues(float &old_cpi, float &new_cpi)
{
    cout<<"Enter the old and new consumer price indices: ";
    cin>>old_cpi>>new_cpi;
    if ((old_cpi<=0)||(new_cpi<=0))
    {
        do
        {
        cout<<"Error: CPI values must be greater than 0";
        cin>>old_cpi>>new_cpi; 
        }while ((old_cpi<=0)||(new_cpi<=0));
    } 
}
float swap_values(float&i, float&j)
{
    int temp = i;
    i=j;
    j=temp;
    return(i, j);
}
void bubbleSort(float a[], int number_used) 
{ 
   for (int m = 0; m < number_used-1; m++)       


       for (int n = 0; n < number_used-m-1; n++)  
           if (a[n] > a[n+1]) 
              swap_values(&a[n], &a[n+1]); 
} 
...