Witam,
mam problem z napisaniem następującego programu:
Studenci w toku swoich studiów otrzymują pewne oceny. Zdarzają się w trakcie studiowania takie momenty, kiedy z pewnych względów potrzebna jest średnia ocen lub lista wszystkich dotychczas otrzymanych ocen.
Napisz program, który będzie wczytywał kolejne oceny otrzymywane przez studenta (od 2 do 5 - zakładamy, że nie ma połówek), a dla podanych poniżej wartości będzie wykonywał następujące akcje:
1: wypisanie na wyjściu średniej dotychczas otrzymanych ocen, z dokładnością do dwóch miejsc po przecinku,
0: wypisanie na wyjściu w jednej linii wszystkich dotychczas otrzymanych ocen w kolejności ich otrzymywania,
-1: zakończenie studiów (koniec działania programu).
Wejście:
Wejście składa się z ciągu liczb całkowitych. Każda liczba przyjmuje wartość od -1 do 5, gdzie liczby od 2 do 5 oznaczają oceny otrzymane przez studenta, a znaczenie liczb 1, 0 i -1 opisano w treści zadania.
Na wejściu nie pojawi się więcej niż 1010 liczb.
Wyjście:
Na wyjściu należy dla każdej wartości 0 lub 1 wypisać w osobnej linii wartości określone w treści zadania.
Przykład:
Wejście:
5 5 4 4 1 5 5 0 4 4 1 0 1 5 4 3 2 1 0 -1
Wyjście:
4.50
5 5 4 4 5 5
4.50
5 5 4 4 5 5 4 4
4.50
4.17
5 5 4 4 5 5 4 4 5 4 3 2
To co do tej pory udało mi się wykombinować podaję poniżej, będę wdzięczny za ewentualne dopisanie dalszej lub zmianie obecnej wersji kodu, dzięki czemu sam będę mógł zobaczyć jak poprawnie stosuje się i operuje funkcją void ; )
#include <iostream>
#include <cstdio>
using namespace std;
int tab[ 1100 ];
void wypisz( int n )
{
int i;
for( i = 0; i <= n; i++ )
cout << tab[ i ];
}
void srednia( int n )
{
int suma, s;
for( i = 0; i <= n; i++ )
{
suma = a + b;
suma = a;
}
s = suma / n;
printf( "%d", s );
}
int main()
{
int z, a, b;
scanf( "%d", & z );
while( z != - 1 )
{
if( z == 1 )
void wypisz()
else
void srednia()
}
return 0;
}