Как написать функцию swapdigits.
Напишите функцию: swapDigits(m,n,x) {}, которая имеет 3 неотрицательных целочисленных аргумента и должна возвращать число, полученное путем замены M-й и N-й цифр числа x. например, swapDigits (0,3,123456) возвращает 126453, 0-я цифра числа является его наименее значимой цифрой. или еще один "бывший". swapDigits(2,3,1234) возвращает 1324. Я не должен использовать строки или массивы. Это моя работа, но программа не работает, если m или n=0, если x=10a+b и для некоторых других чисел, таких как swapDigits(2,4,2412).
Что я уже пробовал:
int numberOfDigits(int x) { int count=0; while(x!=0){ x/=10; count++; } return count; } int swapDigits(int m, int n, int x) { int tempa, tempb, temp, temp1, temp2, a, b, c, g, d; temp=x; temp1=x; temp2=x; a= numberOfDigits(x) - m ; b= numberOfDigits(x) - n ; tempa=a; tempb=b; int mthDigit, nthDigit; while(tempa>=0){ tempa--; temp1/=10; mthDigit=temp1%10; } while(tempb>=0){ tempb--; temp2/=10; nthDigit=temp2%10; } d = (mthDigit*pow(10, a)) + (nthDigit*pow(10, b)) ; g = (nthDigit*pow(10, a)) + (mthDigit*pow(10, b)) ; return x - d + g; }
[no name]
Похоже, самое подходящее время научиться запускать свой код с помощью отладчика и изучать переменные по мере его выполнения.