Witajcie,
mam problem taki, że chce wypełnić tablicę losowymi wartościami, ale nie chce robić tego za pomocą tab[i] tylko za pomocą wskaźników. Zrobiłem to tak jak na dole i wpisywanie w funkcji main szwankuje. Pogrubiłem to co jest nie tak. Jak zaprintuje linijkę //tablica++; wpisuje się wartość zgodnie z oczekiwaniami, jak chce żeby przeskoczył do następnego adresu i tam wrzucił wartość to wywala błąd i podkreśla mi delete [] tablica; Ma ktoś jakiś pomysł co jest nie halo?
#include <cmath>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
void wypisz(float *tab, int ile)
{
for ( int i = 0; i < ile; i++)
{
cout << *tab << endl;
tab++;
}
}
float srednia(float *tab, int ile)
{
float suma = 0;
for (int i = 0; i < ile; i++)
suma+= *tab;
tab++;
return suma / ile;
}
int main()
{
srand((unsigned)time(NULL));
int ile;
ile = 0;
cerr << "Podaj z ilu liczb chcesz obliczyć średnią" << endl;
cin >> ile;
float *tablica;
tablica = new float[ile];
for (int i = 0; i < ile; i++)
{
*tablica = 1 + rand() % 6;
tablica++; // tu nie przesuwa
}
wypisz(tablica, ile);
cout << "srednia wynosi = " << srednia(tablica, ile) << endl;
delete [] tablica; // tutaj wywala
return 0;
}