Pomoc w optymalizacji kodu

0

Napisz program, który wczytuje liczby całkowite (gdzie zero stanowi znacznik końca danych). Zadaniem programu jest wypisanie elementów które są średnią artytmetyczną swoich czterech najbliższych sąsiadów.
Dla ciągu 1, 2, 8, 3, 1, 1, 6, 4, 5, 4, 5, 4, 0 program powinien wypisać 3, 4, 4;
Zakładamy że użytkownik podał co najmniej 5 elementów.

#include <iostream> 
using namespace std;
int main()
{
    int tab[20];
    int n;
    for (int i=0; i<20; i++)
    {
        cin >> tab[i];
        if (tab[i]==0)
        {
            n = i-1;
            break;
        }   
    }
    cout << endl;
    if (tab[0]==(tab[1]+tab[2]+tab[3]+tab[4])/4) cout << tab[0] << " ";
    if (tab[1]==(tab[0]+tab[2]+tab[3]+tab[4])/4) cout << tab[1] << " ";
    for (int i=2 ; i<=n-2; i++)
    {
        if (tab[i]==(tab[i-2]+tab[i-1]+tab[i+1]+tab[i+2])/4) cout << tab[i] << " ";
    }
    if (tab[n-1]==(tab[n-4]+tab[n-3]+tab[n-2]+tab[n])/4) cout << tab[n-1] << " ";
    if (tab[n]==(tab[n-4]+tab[n-3]+tab[n-2]+tab[n-1])/4) cout << tab[n];
    return 0;
}

Jestem początkujący więc chciałbym zapytać jak zmienić kod żeby był bardziej "wzorcowy".

0

Wzorcowy? Normalnie byłoby zamknąć to w funkcji, a w ogóle tam jest błąd powinno zwracać 3, 4.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0