Другие языки программирования и технологии

Помогите с си плюс плюс

Дано целое четырехзначное число х. Вывести на экран сообщение о том, сколько в данном числе одинаковых цифр и каково их значение.
#include "iostream"
int main(){
int k,a[10]={}; std::cin>>k; k=k>0?k:-k;
for(int i=0;i<4;i++)a[k% 10]++,k/=10;
for(int i=0;i<10;i++)if(a[i]>1)std::cout<<i<<": "<<a[i]<<'\n';}
Никита Гулак
Никита Гулак
65 631
Лучший ответ
int main()
{
int number = 123342611;
int freq[10]= {0};
while (number != 0) {
int a = number % 10;
freq[a] += 1;
number /= 10;
}
for (int i = 0; i < 10; i++)
if (freq[i] > 1)
std::cout << i << ": " << freq[i] << std::endl;

}
Дюсембаев Куат
Дюсембаев Куат
25 445
Никита Гулак Увы, програма преждевременно прекратит проверки при числе, заканчивающемся на нули.
Никита Гулак А впрочем, нет, это было первое движение души :( Будет работать и в этом случае. Извиняюсь...
Автор, то что тебе дали сверху они вообще работают неправильно. И ты сломя голову пошёл копировать их и вставлять в свой код?

Цель задачи подсчитать количество одинаковых цифр и вывести их соответствующие значения.
Но то что дано сверху этого не выполняют, даже если работают, то не корректно обрабатываются.

У меня есть код для этой задачи в отдельных файлах, если нужны стучись в telegram или VK.
Результаты выполнения моей программы, можешь посмотреть на скриншоте. Моя программа подсчитывает, только те цифры которые встречаются более 1 раза. При этом счётчик увеличивается только тогда если найдено повторяющаяся цифра и если она не равна предыдущему значению. Но если нужно сделать наоборот, чтоб программа подсчитывала все повторения подряд, то это легко можно исправить. В терминал выводятся лишь те цифры, которые повторяются более 1 раза. Если одинаковых цифр не найдено, то выводится соответствующее сообщение.
Vladimir Elmanov
Vladimir Elmanov
406