Po 1: Po co Ci bufory? Wystarczy, że na początku pobierzesz zmienną "liczb", a później gdy będziesz potrzebował wykonać "liczb" iteracji w pętli to wystarczy dać coś takiego:
cin>>liczb;
int i=0;
while(i<liczb) //pętla wykona się "liczb" razy
{
//jakiś kod
i++;
}
i=0; //przypisujesz wartość 0 iteratorowi
while(i<liczb) //znów pętla wykona się "liczb razy
{
//jakiś kod
i++;
}
Można tak robić ile razy się chce w jednym kodzie bez konieczności używania pierdyliarda buforów. Po 2: Nie potrzebne Ci są te tablice suma, srednia, wynik, ponieważ SPOJ (zgaduję, że zadanie ze SPOJa) sam rozpoznaje, co jest outputem. Co to oznacza? Nie musisz podawać wyników "na sam koniec", możesz je podawać zaraz po podaniu zestawu liczb dla których masz obliczyć wynik, czyli nie musi być tak:
Input:
3
4 1 2 3 4
4 4 3 2 1
4 0 3 2 4
Output:
2
3
2
ale może być tak:
input :3
input :4 1 2 3 4
output:2
input: 4 4 3 2 1
output:3
input: 4 0 3 2 4
output:2
Więc możesz te wczytywanie liczb, obliczanie średniej, wyniku, oraz wypisywanie wyniku wpakować do jednej pętli, aby nie robić bałaganu. Kod ten jest tak nieczytelny, że trudno tu dowiedzieć się, co tu jest nie takk, że wypisuje niepoprawny wynik. Przydałby się debugger. W tej kwestii ci nie pomogę, napisz program na nowo stosując się do wskazówek!
Pozdrawiam, miłego kodowania!