【发布时间】:2015-05-31 11:09:22
【问题描述】:
我一直在尝试创建一个函数,将数字输入向量(准确地说是 7)并计算平均值。但是,我尝试将每个向量元素初始化为用户输入的数字。示例:
double average(int a, int b, int c, int d, int e, int f, int g)
vector<double>aa;
aa[0]=int a;
aa[1]=int b;
aa[2]=int c; etc.
但是当我这样做时,我得到了
错误:“int”之前的预期主表达式
当我把它改成
for(size_t j=0; j<=7; j++)
{
cout<<"Enter item # " <<(j+1);
cin>>a[j];
}
我明白了
数组下标的无效类型‘int[size_t {aka unsigned int}]’ cin>>a[j];
我是编程新手,可能无法理解复杂的答案。 如果以前有人问过这个问题,我深表歉意。我使用 Linux Ubuntu 编译我的代码(终端,g++)。
注意我们的讲师对此的回答是:
double average (const vector<int>& v)
{
int N = v.size();
int sum = 0;
for (int i = 0; i < N; i = i + 1)
{
sum = sum + v[i];
}
return static_cast<double>(sum)/(N);
}
(我认为我的错误,因为他要求“按引用函数调用”,我认为我创建了“按值调用”。我不知道他写了什么(尤其是return static_cast<double>(sum)/(N);。
【问题讨论】:
-
所以你有一个问题陈述,你的讲师提供了一个正确的解决方案。你的问题到底是什么?
-
他的回答让我很困惑。