#include <iostream>
using namespace std;
int main() {
int n;
int c;
//initializam numerul de cifre
int i0 = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0,
i9 = 0;
//citim n
cin >> n;
// numaram cifrele
while (n) {
c = n % 10;
n = n / 10;
switch (c) {
case 0:
i0++;
break;
case 1:
i1++;
break;
case 2:
i2++;
break;
case 3:
i3++;
break;
case 4:
i4++;
break;
case 5:
i5++;
break;
case 6:
i6++;
break;
case 7:
i7++;
break;
case 8:
i8++;
break;
case 9:
i9++;
break;
}
}
//afizam cifrele
cout << "Numarul are: \n";
cout << "[" << i0 << "]" << " de 0\n";
cout << "[" << i1 << "]" << " de 1\n";
cout << "[" << i2 << "]" << " de 2\n";
cout << "[" << i3 << "]" << " de 3\n";
cout << "[" << i4 << "]" << " de 4\n";
cout << "[" << i5 << "]" << " de 5\n";
cout << "[" << i6 << "]" << " de 6\n";
cout << "[" << i7 << "]" << " de 7\n";
cout << "[" << i8 << "]" << " de 8\n";
cout << "[" << i9 << "]" << " de 9\n";
return 0;
}
Dupa cum se observa un astfel de program este foarte lung chiar daca este simplu de scris.
O versiune mai compacta a acestui program este urmatoarea:
#include <iostream>
using namespace std;
int main() {
int n;
int v[10];
int c;
for (int i = 0; i < 10; i++) {
v[i] = 0;
}
cin >> n;
while (n) {
c = n % 10;
n = n / 10;
v[c]++;
}
for (int i = 0; i < 10; i++) {
cout << "[" << v[i] << "]" << " de " << i << "\n";
}
return 0;
}
Resultatul este acelasi, dar codul este mai compact, si mai usor de urmarit.