C ++数组(初学者)

时间:2014-02-15 18:05:25

标签: c++ arrays

我错误地将数组用于向量,抱歉(数组是瑞典语中的vektor)

我需要一些我正在制作的程序的帮助。这是一项任务,所以我真的需要了解我是如何做到的,而不仅仅是获取代码:P

我需要创建一个包含10个“数字”的数组(我希望在程序运行时使它们可编辑)。 我完成这项工作后,我需要让程序计算所有数字的“平均值”“/

如果你能够选择你想要的平均数量的数字,那将是非常整洁的,如果有人可以分享我应该如何做到的一些知识:P 无论如何,我尝试了一些代码来使矢量不起作用,我不妨在这里添加它:

int vector[10];

和     vector [0]“number 1:”; 等等,用于向量中输入数字。

int sum = vector[0] + vector[1] + ...
cout << "average value is: " << sum/5;

应该可以获得平均值(对吧?)

我还要添加:

float average(int v[], int n)
对这件事情也是如此,但实际上并不怎么样。

任何帮助/知识都会很棒!欢呼声。

4 个答案:

答案 0 :(得分:2)

选择您想要平均的数字:

Native:仅限(G ++ / Clang),而非“合法”C ++

cin >> num;
int vector[num];

“正确”原生(指针):

int *vector = new int [num];

“正确”C ++:

#include <vector>
std::vector<int> v(num);

答案 1 :(得分:1)

如下所示的函数可用于计算包含n个元素的数组的平均值。

float average(int v[], int n)
{
    float sum = 0;
    for(int i = 0 ; i < n ; i++)
    {
       sum += v[i]; //sum all the numbers in the vector v
    }

    return sum / n;
}

你可以像你所做的那样声明你的数组但是我建议你把它命名为其他东西然后矢量以避免混淆。关于更改数组中数字的游览问题,您可以通过例如设置从1到10的循环然后让用户输入所有字段的值来完成此操作。

Vektorpåsvenska=arraypåengelska(vectoräranågotannat:))

答案 2 :(得分:1)

如果您只想要10个数字,只需使用数组即可消除大量开销。但是,假设您想要使用向量,您可以轻松找到利用其“大小”成员的平均值,如下所示:

float average(std::vector<int> nums)
{
    int sum = 0;
    for (unsigned int i = 0; i < nums.size(); i++)
        sum += nums[i];
    return sum / nums.size();
}

注意,这确实假设总和不会高于2 ^ 31-1,IE是有符号整数可以表示的最高数字。为了更安全,你可以使用无符号和/或64位int作为求和,或者使用像gmp这样的任意精度库,但我认为这些都超出了你的作业范围。

答案 3 :(得分:1)

你必须声明你已经完成的大小为10的数组。

使用循环从用户获取10个输入。 (forwhile循环可以)

使用另一个循环计算所有十个数字的总和并将其存储在变量中。

将变量除以10。

这是你需要做的事情。但是,为了使您的驱动程序更漂亮,您可以定义以下功能:

void GetInput(int *A); //put the input loop here

您还可以编写给定的两个函数中的任何一个:

long Sum(int * A)   //put the summing loop here

double Average(int * A)  //put the summing loop here AND divide the sum by ten

由于您是初学者,我觉得有必要告诉您,您不需要返回数组,因为它总是作为参考参数传递。我没有费心将数组大小作为参数传递给任何函数,因为它是固定的并且已知为10但是这样做是很好的做法。