Wpis z mikrobloga

@rafaloc: Ażeby zainicjalizować tablicę, potrzebujesz znać długość tablicy. Jest jednak problem, bo podstawiając zmienną liczba, która jest na dodatek zmiennoprzecinkowa, nie stworzyć tablicy o tej długości w trakcie programu, ten zapis jedynie działa w stadium deklaracji, a teraz deklarujesz taką tablicę, która ma nieznaną w trakcie definicji wielkość z powodu niezinicjalizowanej zmiennej liczba. Musisz skorzystać z dynamicznego przyznawania pamięci, albo wg mnie najlepiej porzucenia tej koncepcji tablicy na poczet zwykłej
liczba


@rafaloc: nie używaj typów zmiennoprzecinkowych do przechowywania liczb całkowitych (patrz liczba ocen i prawdopodobnie oceny).

A jak nie chcesz korzystać z dynamicznej alokacji tablicy to zrób sobie po prostu tablicę oceny o rozmiarze, którego na pewno nie przekroczysz (np 100). Pętlą for iteruj nie do 5ciu tylko do podanej liczby (pamiętaj żeby zmienić typ na int).

Tak w ogóle możesz się pozbyć tej tablicy bo i tak zliczasz tylko sumę,
@rafaloc: Dla jasności dodam, że taka inicjalizacja zaszłaby w wypadku, gdyby a) zmienna liczba byłaby całkowitoliczbowa, b) byłaby znana jej wartość podczas definicji tablicy oceny
@rafaloc: Nie skompiluje tego w głowie, więc coś może być nie tak ale +/-:

#include
#include

using namespace std;

int main()
{
int liczbaOcen,;
float suma =0.0, srednia =0.0;

cout<<"Kalkulator sredniej"<>liczba;
for(int i=0; i>wczytanaOcena;
suma+=wczytanaOcena;
}

srednia=suma/(float)liczbaOcen;
cout<
@MozeSuker: Powyzej też zadziała( tylko nie cin>>liczba ale cin>>liczbaOcen), a jak chesz miec z tablicą to najlepiej:
#include
std::vector oceny;
for( ... ) {
float tmp = 0;
std::cin >> tmp;
oceny.push_back(tmp);
}
float sum = std::accumulate(v.begin(), v.end(), 0.0);
float sr = sum / v.size();