我的Bubblesort不会排序任何内容,也不会让我通过引用传递

时间:2019-01-30 01:10:51

标签: c++ swap bubble-sort

对于我的CS类,我们正在制作一个程序,该程序读取数字,从这两个数字计算通货膨胀率,将这些数字发送到数组,对数组进行冒泡排序,然后在对数组进行排序后将其打印出来。但是,我无法对Bubblesort进行排序,或者当我使用&时出现编译器错误,或者根本就没有排序。有人可以帮忙吗?谢谢!     #包括     使用命名空间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]); 
} 

0 个答案:

没有答案