int sum, a, b = 0;
только здесь b
инициализируется с 0
.
sum
и a
неинициализированы.
Вам необходимо написать:
int sum = 0, a = 0, b = 0;
Или каждая переменная в отдельной строке:
int sum = 0;
int a = 0;
int b = 0;
Даже если технически в вашей функции только инициализируется sum
, чтобы алгоритм работал, очень хорошая практика инициализировать все переменные при объявлении.
Еще одно хорошее предложение @melpomene - сузить область видимости переменных.Например, a
и b
используются только в цикле while
:
int sum = 0;
while (*Pinput){
int a = *Pinput;
++Pinput;
int b = *Pinput;
if(a == b)
sum += a;
}
return sum;