Cześć, mam taki problem. Napisałem program, który ma 4 tablice. Jedna z funkcji ma obliczać element maksymalny z tablicy X i Y i ile razy on wystąpił. Treść polecenia: obliczyć element maksymalny oraz ile razy on wystąpił w tablicy, wartość elementu
maksymalnego zwrócić przez return zaś ilość przez parametr typu wskaźnikowego, wypisać
obliczone wartości dla tablicy X i Y. Tutaj mam problem. Jak zwrócić wartość a nie adres?
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <Windows.h>
void losuj(int t[], int N, int p, int k)
{
for (int i = 0; i < N; i++)
{
t[i] = p + rand() % (k - p + 1);
}
}
void wypisz(int t[], int N)
{
for (int i = 0; i < N; i++)
{
std::cout << t[i] << " ";
}
}
int maksimum(int t[], int N, int *ile)
{
int max = t[0];
for (int i = 0; i < N; i++)
{
if (t[i] > max)
{
max = t[i];
}
else if (t[i] == max)
{
ile++;
}
}
return max;
}
int main()
{
srand(time(0));
const int N = 5;
int X[N], Y[N], Z[N], Q[N];
int p, k, ilosc;
std::cout << "Podaj zakres losowania: <p k>: ";
std::cin >> p >> k;
std::cout << "\n";
std::cout << "Tablica X: ";
losuj(X, N, p, k);
wypisz(X, N);
std::cout << "\n";
std::cout << "\nTablica Y: ";
losuj(Y, N, p, k);
wypisz(Y, N);
std::cout << "\n";
std::cout << "\nTablica Z: ";
losuj(Z, N, p, k);
wypisz(Z, N);
std::cout << "\n";
for (int i = 0; i < N; ++i)
{
int tab[] = { X[i], Y[i], Z[i] };
Q[i] = maksimum(tab, 3, ilosc);
}
std::cout << "\nTablica Q: ";
wypisz(Q, N);
std::cout << "\n";
std::cout << "\nElement maksymalny w tablicy X wynosi: " << maksimum(X, N,ilosc) << " wystepuje on: " << ilosc << " raz/y";
std::cout << "\nElement maksymalny w tablicy Y wynosi: " << maksimum(Y, N,ilosc) << " wystepuje on: " << ilosc << " raz/y";
std::cin.ignore();
std::cin.get();
return EXIT_SUCCESS;
}