为什么我在尝试编译时会出现这个编译错误

Why am i getting this compile error when i try to compile?

本文关键字:编译 错误 为什么      更新时间:2023-10-16

我是c++编程的新手,我被分配了一个练习,我得到了一个编译错误

我希望有人能帮我解决这个错误,或者让我了解为什么会发生这种错误下面的代码/*练习21中级:声明一个名为temperatures的七行两列int数组。程序应提示用户输入七天内的最高和最低温度。将最高温度存储在阵列的第一列中。将最低温度储存在第二列中。程序应显示平均高温和平均低温。用小数点后一位显示平均温度。*/

#include <iostream>
#include <iomanip>
using namespace std;
//function prototype
void calcAverage(double temperatures[7][2]);
main()
{
double temperatures[7][2] = {0};
float high = 0.0;
float low = 0.0;
double high_average = 0.0;
double low_average = 0.0;

cout << "Please enter the high then low for the last 7 days " <<endl;
for(int x = 0; x < 6; x += 1)
{
    cout << "Please enter the High for day: "<< x+1<<": ";
    cin >> high;
    temperatures[0][x] = high;
}
for(int x = 0; x < 6; x += 1)
{
    cout << "Please enter the Low for day: "<< x+1<<": ";
    cin >> low;
    temperatures[1][x] = high;
}
//Error is here
calcAverage(high_average, low_average);
// end error   
system("pause");        
}

void calcAverage(double temperatures[6][1],double &high_average, double &low_average)
{
float accumulator = 0.0;
//for hot average  
for(int x = 0; x < 6; x += 1)
{
    accumulator += temperatures[0][x];
}
    high_average = accumulator;
// for cold average 
    accumulator = 0.0;
for(int x = 0; x < 6; x += 1)
{
    accumulator += temperatures[1][x];
}
    low_average = accumulator;
}

44无法为参数1' to void calcAverage(double()[2])'转换double' to double()[2]'

void calcAverage(double temperatures[7][2]);

好的,calcAverage取一个二重的二维数组。

calcAverage(high_average, low_average);

但你已经过了两次双打。

void calcAverage(double temperatures[6][1],double &high_average, double &low_average)

现在它需要一个双精度的二维数组和两个引用。

从这三个中选择一个并坚持下去。