c++ - 为什么我的函数不返回 float ?

标签 c++ arrays

<分区>

我编写了一个程序来计算一维数组的平均值。它有点工作,但我的问题是 float 子程序不在 main 中返回 float。

void vnesi_niza(int n, int a[50])
{
    for (int i=0;i<n;i++)
    {
        cout << "a[" << i << "]=";
        cin > >a[i];
    }
}

float sreden_uspeh(int n, int a[50])
{
    int sum=0;
    float as;
    for (int i=0;i<n;i++)
    {
        sum+=a[i];
        as=sum/n;
    }
    return as;
}

int main()
{
    int n;
    int niza[50];
    cout << "input the number of elements" << endl;
    cout << "n=";
    cin >> n;
    vnesi_niza(n,niza);
    cout << endl;
    cout << "the average is " << endl;
    cout << sreden_uspeh(n,niza); //sreden_uspeh means average
    return 0;
}

最佳答案

由于成绩总和是 int 类型,除法运算将是整数除法,即它会下降到前一个最接近的整数。因此,您应该像这样进行小数除法:as = (1.0 * sum)/n

注意:你不需要在循环中每次都计算平均值,在循环外计算一次就可以了,你将返回它。

关于c++ - 为什么我的函数不返回 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50895201/

相关文章:

c++ - 如果超时已过,如何中止 async()

c++ - 使用 Sublime Text 2 中的输入运行 C++ 文件

c++ - 使用 rxcpp 进行调度和超时处理

c - 为什么 int *b[5] 形成 8 位的差异而不是 4 位?

c - fopen 函数将垃圾放在文件路径名上

javascript - 数组中每个元素的数字之和

c++ - Qt C++ QTouchEvent & TouchPoint 混淆

javascript - 按状态转换数据数组

java - 如何将 "add parsed string that used filter"转换为字符串 ArrayList

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?