当没有值时,跳过计算平均值。 C ++。Xcode中

时间:2016-05-29 07:22:44

标签: c++

我正在计算一个计算结构数组中得分平均值的函数。该函数循环遍历数组并检查每个具有为结构的id参数填充的值的项。对于这些项目中的每一项(其中id!=“”),分母以1递增 并且数组和变量使用数组中该项的score参数值递增。我面临的问题是当数组中没有项目并且在打印整个报告时调用该函数。平均值变为0/0,表示错误。我尝试将denom起始值更改为1,因此如果数组为空,则计算为0/1 = 0,但这肯定会影响实际平均值。知道怎么解决这个问题吗?

double average(student o[])
{
    int arraySum =0, denom =0;
    double avg;

    for(int s=0; s<50 ; s++)
    {
        if(o[s].id !="")
        {
            arraySum+= o[s].score;
            denom+=1;
        }
    }

    avg = arraySum/denom;  //?? when the array is empty this is 0/0
    return avg;
}

1 个答案:

答案 0 :(得分:0)

在计算结果之前添加if语句

double average(student o[])
{
    int arraySum =0, denom =0;
    double avg;

    for(int s=0; s<50 ; s++)
    {
        if(o[s].id !="")
        {
            arraySum+= o[s].score;
            denom+=1;
        }
    }
    if(denom){
        avg = arraySum/denom;  //?? when the array is empty this is 0/0
        return avg;
    }else{
        return 0;
    }
}