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;
}