Я пытаюсь написать функцию, которая добавляет нечетные цифры одного номера в конец второго номера без использования массивов. Вот то, что я до сих пор:C - Добавить нечетные цифры числа в конец другого номера
#include <stdio.h>
#include <math.h>
int NumberAdd (int n, int m)
{
int power=1,x=0,counter=0,newnumber;
while(n!=0)
{
if(n%2!=0)
{
x=x+(n%10)*power;
power*=10;
counter++;
}
n=n/10;
}
newnumber=m*pow(10,counter)+x;
return newnumber;
}
int main()
{
int m,n;
scanf("%d %d", &n, &m);
printf("%d\n", NumberAdd(n,m));
return 0;
}
Теперь из моего опыта, это должно работать, и это не будет работать, если первое число является нечетным числом, но если числа я пытаюсь получить нечетные цифры из четного числа у меня возникают проблемы. Например:
Для 3457 и 3458 я получаю 3458357 в результате. Но, для 3456 и 3457 я получаю 345734. Любые идеи, почему?
Спасибо большое, теперь работает! –
@AndrejNaumovski Я немного обновил код. Вы можете просто использовать «мощность», которую вы уже рассчитали, вместо вызова 'pow()'. – AlexD