Witam, mam problem z programem który ma wyznaczać wartość średnią elementów tablicy, po pierwsze losowa tablica z każdym uruchomieniem programu jest taka sama. Dodatkowo średnia wartość elementów(suma ai przez n) wychodzi mi bardzo duża, mimo że elementy tablicy maksymalnie wynoszą 10. Przez to nie działa mi też odchylenie(powinno być równe pierwiastek od suma(ai-średnia)^2/n ) no i nie wiem jak zrobić zliczanie i zapisanie do nowej tablicy wartości od średnia-odchylenie do średnia+odchylenie
Oto kod który udało mi się skleić na tą chwile
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <cmath>
using namespace std;
int * tab;
int* createTable(int wartosc);
double srednia(int *tab, int wartosc);
double odchylenie(int *tab, int wartosc, double srednia);
double zlicz(int *tab, int wartosc, double srednia, double odchylenie);
void showTable(int *tab, int wartosc);
int* createTable(int wartosc){
tab = new int[wartosc];
for(int i = 0; i < wartosc; i++){
tab[i] = rand() % 10;
}
return tab;
}
double srednia(int *tab, int wartosc){
int suma;
double srednia;
for(int i = 0; i < wartosc; i++){
suma += tab[i];
}
srednia = suma / wartosc;
return srednia;
}
double odchylenie(int *tab, int wartosc, double srednia){
double odchylenie;
int suma;
for(int i = 0; i < wartosc; i++){
suma += *(tab + i);
}
odchylenie = double(sqrt(pow(double(suma-srednia), 2)/wartosc));
}
double zlicz(int *tab, int wartosc, double srednia, double odchylenie){
double zlicz;
}
void showTable(int *tab, int wartosc){
cout << "Elementy tablicy" << endl;
for(int i = 0; i < wartosc; i++){
cout << tab[i] << " ";
}
cout << endl;
}
int main(){
int wartosc;
cout << "Podaj wielkosc tablicy: ";
cin >> wartosc;
if(wartosc <= 0) {
cout << "Wielkosc tablicy nie moze byc mniejsza od 0" << endl;
return 0;
}
tab = createTable(wartosc);
double sr = srednia(tab, wartosc);
double od = odchylenie(tab, wartosc, sr);
int wybor;
cout << "Wybierz co chcesz zrobic" << endl;
cout << "1. Pokaz elementy tablicy" << endl;
cout << "2. Srednia wartosc elementow tablicy" << endl;
cout << "3. Wartosc odchylenia standardowego dla elementow tablicy" << endl;
cout << endl << "Wybor: ";
cin >> wybor;
switch(wybor){
case 1: {
showTable(tab, wartosc);
break;
}
case 2: {
cout << "Srednia wartosc" << endl;
cout << sr << endl;
break;
}
case 3:{
cout << "Odchylenie wartosc" << endl;
cout << od << endl;
break;
}
default:{
cout << "Nieprawidlowa wartosc";
break;
}
}
delete [] tab;
tab = NULL;
return 0;
}
Proszę o pomoc ponieważ nie wiem już co robić, nie wiem czemu ta tablica i średnia nie działają tak jak powinny.