Witam napisałem program, który wyznacza z tablicy wartości największą, najmniejszą i pokazuje średnią.
Program się włącza, jednak dane są domyślne. Dlaczego przyjmuje wartości domyślne a nie te, które zostały zaincjalizowane?
plik nagłówkowy:
#ifndef DANE_H_
#define DANE_H_
namespace SALES
{
class Sales
{
private:
static const int QUARTERS = 4;
double sale[QUARTERS];
double average, max, min;
public:
Sales(double * sales, const int QUARTERS);
Sales();
void showSales();
};
}
#endif
plik deklaracji (próbowałem też tutaj zainicjalizować tablicę, jednak również był ten sam efekt):
#include "dane.h"
#include <iostream>
SALES::Sales::Sales(double * sale, const int QUARTERS)
{
this->min = this->sale[0];
this->max = this->sale[0];
this->average = 0;
for(int i=0; i<this->QUARTERS; i++)
{
if(this->sale[i] > this->max)
this->max = this->sale[i];
if(this->sale[i] < this->min)
this->min = this->sale[i];
this->average += this->sale[i];
}
std::cout << "Największa wartość: " << this->max << "\nNajmniejsza wartość: " << this->min << "\nŚrednia wartość: " << this->average/this->QUARTERS << std::endl;
}
void SALES::Sales::showSales()
{
std::cout << "Największa wartość: " << max << "\nNajmniejsza wartość: " << min << "\nŚrednia wartość: " << average/QUARTERS << std::endl;
}
plik główny:
#include "dane.h"
#include <iostream>
int main()
{
double table[4] = {22.11, 3.55, 33.55, 3.56};
SALES::Sales object(table, 4);
std::cout << "\n\n";
object.showSales();
return 0;
}