tablice- błędne wypisaywanie danych

0

Witam!
Napisałem program który miał za zadanie:
"Dany jest ciąg n-elemetowy liczb całkowitych. Napisz program, wypisujący liczby o maksymalnej sumie cyfr. "
i program dla wielu liczba działa poprawnie ale jak np wpisze liczby :
ilość liczb : 5;
liczby :51,33,24,42,2;
Program wypisuje mi:
2,33,24,42 (brakuje 51 [powinna być an 1 miejscu], a zamiast niej wskakuje 2[ostatnia wpisywana liczba której w ogóle nie powinno być])
mógłby mi ktoś wyjaśnić czemu tak jest bo przesadziłem kod kilak razy i nie mam pojęcia czemu.
Z góry dziękuję i pozdrawiam.

#include<iostream>
#include<cstdlib>
using namespace std;
//Dany jest ciąg n-elemetowy liczb całkowitych. Napisz program, wypisujący liczby o maksymalnej sumie cyfr.
int main()
{
   int i,n,max,r,x;

   int tablica[n];
   int tablica2[n];

    cout<<"Program wypisze wsztkie liczby ktore maja maxymalna sume cyfr "<<endl;
   cout<<"Podaj ilosc liczb: "<<endl;
   cin>>n;


   for (i=0; i<n; i++)
   {
    cout << "podawaj "<< (i+1) <<" element tablicy"<<endl;
    cin>>tablica[i];
      r=0;
      x=tablica[i];
      while (x != 0)
      {
         r=r+x%10;
         x=x/10;
      }
      tablica2[i]=r;
   }

   //Obliczenie maksymalnej wartosci:
  max=0;

   for (i=0; i<n; i++)
      if (tablica2[i]>max)
         max=tablica2[i];

   //Wypisanie elementow maksymalnych:
   cout<<"\nLiczby o maksymalnej sumie cyfr (max = "<<max<<") :"<<endl;
   for (i=0; i<n; i++)
      if (tablica2[i]==max)
         cout<<tablica[i]<<", ";
         cout<<"\n\n";



   system("pause");
   return 0;
}
0
int i,n,max,r,x;
 
   int tablica[n];
   int tablica2[n];

Jaką wartość ma n?

0

jaką użytkownik poda :

   cout<<"Podaj ilosc liczb: "<<endl;
   cin>>n;

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