Wpis z mikrobloga

#include
#include

using namespace std;

float oceny[liczba]; float suma=0, srednia, liczba;

int main()
{
cout<<"Kalkulator sredniej"<>liczba;
for(int i=0; i<5; i++)
{
cout<<"\n"<<"Podaj "<>oceny[i];
suma+=oceny[i];
}

srednia=suma/liczba;
cout<
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
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
  • Odpowiedz
@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
  • Odpowiedz