Witam,
Muszę napisać taki oto program :
Zadanie
Zadeklarować w funkcji main() dwie tablice A i B 20 elementowe liczb całkowitych.
- Napisać funkcję, która wypełnia tablicę liczbami losowymi z przedziału < p, k >. p, k wczytać w main.
Wywołać dla tablicy A.
void losuj(int t[], int n, int pocz, int kon); - Napisać funkcję, która wypisuje elementy tablicy na ekran, wypisać tablicę A.
void wypisz(int t[], int n); - Napisać funkcję która oblicza element maksymalny w tablicy i ile razy on wystąpił w tej tablicy.
Element maksymalny ma być zwrócony do main przez return, zaś ilość przez parametr referencyjny.
Wywołać dla tablicy A.
int maks(int t[], int n, int &ile); - Napisać funkcję która oblicza i wypisuje średnią arytmetyczną elementów dodatnich w tablicy.
Wywołać dla tablicy A. Jeżeli nie było w tablicy takich elementów wypisać odpowiedni komunikat.
void srednia( int t[], int n); - Napisać funkcję która tworzy tablicę B następująco:
B[i] = 1/2*A[i] , gdy A[i] jest parzyste
B[i] = 0 , gdy A[i] jest nieparzyste
Wypisać tablicę B za pomocą funkcji.
Posortować rosnąco tablicę B. Wypisać tablicę po posortowaniu za pomocą funkcji.
Problem zaczyna się juz w zadaniu 4 ( Nie moge wyświetlić sredniej )
Mógłby ktoś pomóc dokonczyc to zadanie ?
Dziękiuje.
#include <iostream>
#define N 20
#include <ctime>
#include <cstdlib>
using namespace std;
void losuj_tab(int t[],int n, int p, int k);
void wypisz(int t[],int n);
int maks (int t[],int n, int &ile);
void srednia (int t[],int n);
int main()
{
cout<<"Wiktor Dobrzynski"<< endl;
int TabA[N];
int TabB[N];
int p, k;
cout<<"Poczatek i koniec przedzialu "<< endl;
cin>>p>>k;
losuj_tab(TabA, N, p, k);
wypisz(TabA,N);
int Maks,ilosc;
Maks=maks(TabA,N,ilosc);
cout<<"Maksimum= "<<Maks<<endl;
cout<<"Ilosc maks= "<<ilosc<<endl;
int Srednia;
Srednia=srednia(TabA,N);
cout<<"SREDNIA= " <<Srednia<<endl;
return 0;
}
void losuj_tab(int t[], int n, int p, int k)
{
for(int i=0; i<n; i++)
t[i]=rand()%(k-p+1)+p;
}
void wypisz(int t[],int n)
{
for(int i=0; i<n; i++)
cout<<t[i]<<" ";
cout<<endl;
}
int maks(int t[],int n, int &ile)
{
int M=t[0];
for (int i=1; i<n; i++)
if(t[i]>M)
M=t[i];
ile=0;
for (int i=0; i<n; i++)
if(t[i]==M)
ile++;
return M;
}
void srednia (int t[],int n)
{
float sr;
int suma;
int ilosc;
for (int i=1; i<n; i++)
if(t[i]>0)
{
suma=suma+t[i];
ilosc=ilosc+1;
}
if (ilosc==0 )
cout<<"W tablicy nie bylo liczb dodatnich";
else
{
sr=1.0*suma/ilosc;
cout<<"srednia wynosi= "<<sr;
}
}