Not sure why I am getting it, I got this one other time and forgot how i fixed it....
Getting it when i am calling my functions in the main file (3rd)
Three files to this code:

namespace SALES
{
	const int QUARTERS = 4;
	struct Sales
	{
		double sales[QUARTERS];
		double average;
		double max;
		double min;
	};

	// copies the lesser of 4 or n items from the array ar
	// to the sales member of s and computes and stores the
	// average, maximum, and minimum values of the entered items;
	// remaining elements of sales, if any, set to 0
	void setSales(Sales & s, const double ar[], int n);

	// gathers sales for 4 quarters interactively, stores them
	// in the sales member of s and computes and stores the
	// average, maximum, and minumum values
	void setSales(Sales & s);

	// display all information in structure s
	void showSales(const Sales & s);
}
// sales.cpp -- definitions of prototypes

#include "stdafx.h"
#include "sales.h"
#include <iostream>

using namespace SALES;


// copies the lesser of 4 or n items from the array ar
// to the sales member of s and computes and stores the
// average, maximum, and minimum values of the entered items;
// remaining elements of sales, if any, set to 0
void setSales(Sales & s, const double ar[], int n)
{	
	int count = 0;
	for (int i = 0; i < n; i++)
	{
		s.sales[i] = ar[i];
		count++;
	}
	if (count != 4)
	{
		int remainder = 4 - n;
		for (int i = 0; i < remainder; i++)
			s.sales[i] = 0;
	}
	double sum = 0;
	for (int i = 0; i < 4; i++)
		sum += s.sales[i];
	s.average = sum/4;
	s.max = s.sales[0];
	for (int i = 1; i < 4; i++)
	{
		if (s.sales[i] > s.max)
			s.max = s.sales[i];
	}
	s.min = s.sales[0];
	for (int i = 1; i < 4; i++)
	{
		if (s.sales[i] < s.min)
			s.min = s.sales[i];
	}
}

// gathers sales for 4 quarters interactively, stores them
// in the sales member of s and computes and stores the
// average, maximum, and minumum values
void setSales(Sales & s)
{
	for (int i = 0; i < 4; i++)
	{
		std::cout << "Please input a sales #: ";
		std::cin >> s.sales[i];
	}
	double sum = 0;
	for (int i = 0; i < 4; i++)
		sum += s.sales[i];
	s.average = sum/4;
	s.max = s.sales[0];
	for (int i = 1; i < 4; i++)
	{
		if (s.sales[i] > s.max)
			s.max = s.sales[i];
	}
	s.min = s.sales[0];
	for (int i = 1; i < 4; i++)
	{
		if (s.sales[i] < s.min)
			s.min = s.sales[i];
	}
}

// display all information in structure s
void showSales(const Sales & s)
{
	std::cout << "Sales numbers are " << s.sales[0] << ", " << s.sales[1] << ", " << s.sales[2] << ", " << s.sales[3] << std::endl;
	std::cout << "Average: " << s.average << std::endl;
	std::cout << "Max: " << s.max << std::endl;
	std::cout << "Min: " << s.min << std::endl;
}
// Exc_4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "sales.h"
#include <iostream>

using namespace SALES;


int _tmain(int argc, _TCHAR* argv[])
{
	double numbers[3] = {4.5, 2.3, 4.2};
	Sales test;
	setSales(test, numbers, 3);
	showSales(test);
	Sales test2;
	setSales(test2);
	showSales(test2);
	system("PAUSE");
	return 0;
}

Recommended Answers

All 2 Replies

In the second listing, get rid of line 7 and wrap the code from 10 to 81 in

namespace SALES
{


}

You need to specify that all of that is in the same namespace as your header file declarations.

There's a bug with one of the array elements, but you should be able to find it now that you can compile and run it.

Ah you are right, tyvm

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.