Explicaţiile sunt în codul de mai jos... Dacă ceva nu e clar, întrebi...
#include <iostream>
using namespace std;
int main()
{
int n, cif, max, ap;
cin >> n;
max=n%10; ap=1;
n=n/10;
while (n)
{
cif=n%10;
if (cif>max) { max=cif; ap=1; }
else if (cif==max) ++ap;
n=n/10;
}
cout << max << " " << ap << endl;
return 0;
}