2013-04-28 3 views
-8

Я понятия не имею, почему этот код не работает, Любая помощь будет оценена. независимо от того, что я делаю, я все равно получаю ту же ошибку. Я знаю, что должно быть больше аргументов, но я просто не понимаю, что я могу добавить.Слишком мало аргументов для ошибки функции? (C++)

#include <iostream> 
#include <iomanip> 
#include <string> 
using namespace std; 
double getSales(); 
void findHighest(double sale[]); 
int main() 
{ 
double sales; 
const int ARRAY_SIZE = 4; 
double salesNE, salesSE, salesNW, salesSW; 
double highest = 0; 
string winner; 
string names[ARRAY_SIZE] = {"Northeast", "Southeast", "Northwest", "Southwest"}; 
double sale[ARRAY_SIZE]; 
int counter = 0; 
cout<<"Input data for the Northeast Division:"<<endl; 
sale[0] = getSales(); 
cout<<"Input data for the Southeast Division:"<<endl; 
sale[1] = getSales(); 
cout<<"Input data for the Northwest Division:"<<endl; 
sale[2] = getSales(); 
cout<<"Input data for the Southwest Division:"<<endl; 
sale[3] = getSales(); 
findHighest(); 
system("PAUSE"); 
return 0; 
} 

double getSales() 
{ 
double sales; 
validate: 
cout<<"Enter the quaterly sales figures for this division:"<<endl; 
cin>>sales; 
if (sales < 0) 
{ 
    system("CLS"); 
    cout<<"Invalid input: sales figures must be higher than $0.00"<<endl; 
    goto validate; 
} 
return sales; 
} 

void findHighest(double sale[]) 
{ 
const int ARRAY_SIZE = 4; 
double highest = 0; 
int counter = 0; 
string winner; 
string names[ARRAY_SIZE] = {"Northeast", "Southeast", "Northwest", "Southwest"}; 
while (counter < ARRAY_SIZE) 
{ 
if (sale[counter] > highest) 
    { 
    highest = sale[counter]; 
    winner = names[counter]; 
    } 
    counter += 1; 
} 
cout<<"The "<<winner<<" division had the highest grossing sales at $"<<highest<<"." <<endl; 
} 
+1

Писали этот код? – Andrew

+2

Пожалуйста, не создавайте головоломки без необходимости. Вы должны сказать, какая строка кода генерирует ошибку. Удержание полезной информации просто отнимает у всех время. Кроме того, считаете ли вы, что проблема в том, что слишком много аргументов в функции? –

ответ

1

Функция аргумент отсутствует в findHighest функции().

Функция замедления void findHighest(double sale[]);

Вы не питая рассуждение double sale[]

Таким образом заменить строку findHighest() [линия перед тем системы ("PAUSE") заявление] с findHighest(sale)

+0

Благодарим за то, что вы указали, в какой строке была ошибка. – jklazzara

+0

Добро пожаловать. :) :) Также, если ответ был вам полезен, пожалуйста, не забудьте пометить (принять), чтобы он мог помочь будущим посетителям в Stack Сообщество Overflow :) –

1

Ваш вызов функции:

findHighest(); 

Ваше объявление функции:

void findHighest(double sale[]); 

Видя это делает в "Слишком мало аргументов для функции" ошибок имеет смысл? Ошибка в значительной степени объяснительна. Да?

0
void findHighest(double sale[]); 

и вы вызываете его

findHighest(); 

Это неправильно.

Передайте массив двойных значений findHighest:

findHighest(sale);