C ++动态分配数组,Bubblesort +查找平均值

时间:2015-10-29 23:47:08

标签: c++

我创建了bubblesort,我想我也有平均值。不确定。但我需要将它实现到我的主要功能中,我不知道该怎么做。现在有点卡住了。任何帮助都会很棒。谢谢!

  

编写一个动态分配足够大的数组的程序   保持用户定义的测试分数。

     

输入所有分数后,应将数组传递给a   函数(您创建)作为指针按升序对其进行排序。   此函数可以命名为sortArray,并将采用两个参数:   (double * anArray,int size)。如果是,该函数将返回true   数组已排序,否则为false(例如,如果大小< = 0)

     

应创建另一个计算平均分数的函数   数组中的项目。该功能将包含两个参数   (double * anyArray,int size)并将平均值作为double返回。

     

程序应显示已排序的分数和平均值数组   有适当的标题。

     

尽可能使用指针表示法而不是数组表示法。

scala> res0(0) + 2 == res0(0 + 1)
res5: Boolean = true

1 个答案:

答案 0 :(得分:1)

你在sortarray 函数中使用了 bool并且它永远不会返回任何值,所以使它无效并且你在排序数组中使用 int temp 它必须是 double ,我修复了你使用这段代码。 顺便说一下你没有调用函数,你忘了在排序后打印数组的值。

#include <iostream>
#include <iomanip>
using namespace std;

bool sortArray(double* anArray, int size);
double averageArray(double* anyArray, int size);


int main()

{
    double* anArray;
    double total = 0.0;
    double average;
    int scores;
    int count;

    cout << "How many test scores are you entering?: ";
    cin >> scores;

    anArray = new double[scores];

    cout << "Enter test scores: ";
    for (count = 0; count < scores; count++)
    {
        cout << "Test Score " << count + 1 << ": ";
        cin >> anArray[count];
    }

    sortArray(anArray, scores);

    for (count = 0; count < scores; count++)
    {
        cout << anArray[count] << "\n";
    }

    cout << averageArray(anArray, scores);

    system("pause");
    return 0;
}

bool sortArray(double* anArray, int size)
{
    bool sort = false;

    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size - 1; j++)
        {
            if (anArray[j] > anArray[j + 1])
            {
                sort = true;
                double temp = anArray[j];
                anArray[j] = anArray[j + 1];
                anArray[j + 1] = temp;
            }
        }
    }
    return sort;
}

double averageArray(double* anyArray, int size)
{
    double count = 0.0;

    for (int i = 0; i < size; i++)
    {
        count += anyArray[i];
    }

    return (count / (double) size);
}