Почему я получаю эту ошибку компиляции, когда пытаюсь скомпилировать?

Я немного новичок в программировании на С++, мне было назначено упражнение, и я получаю ошибку компиляции.

Я надеялся, что кто-нибудь поможет мне устранить ошибку или подскажет, почему это происходит. Код ниже /* Упражнение 21. Промежуточный этап. Объявите массив из семи строк и двух столбцов с именем Temperatures. Программа должна предложить пользователю ввести самую высокую и самую низкую температуру за семь дней. Сохраните самые высокие температуры в первом столбце массива. Храните самые низкие температуры во второй колонке. Программа должна отображать среднюю высокую температуру и среднюю низкую температуру. Отображение средних температур с одним десятичным знаком. */

#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 не может преобразовать double' todouble ()[2]' для аргумента 1' tovoid calcAverage(double ()[2])'


person user2677078    schedule 13.08.2013    source источник
comment
Ошибка ясна, несоответствие типов. Вы передаете double функции, ожидающей double()[2]   -  person Yu Hao    schedule 13.08.2013


Ответы (1)


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

Хорошо, calcAverage принимает двумерный массив двойников.

calcAverage(high_average, low_average);

Но вы прошли его два дубля.

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

И теперь он принимает двумерный массив двойников и две ссылки.

Выберите один из этих трех и придерживайтесь его.

person David Schwartz    schedule 13.08.2013