Заменить в числе каждое вхождение цифры a на цифру b - C (СИ)

Формулировка задачи:

Проблема с такой задачей. Дано число N, а также цифры A и B. Заменить в этом числе каждое вхождение цифры A на цифру B. Технические условия Входные данные Программе даны числа N, A, B (1 ≤ N ≤ 109). Выходные данные Вывести полученное число. Программа выглядит так, только прошла лишь на 88 процентов.
#include <stdio.h>
#include <string.h>
 
int main() {
 
int N, a[14], c, d;
int i = 0, j;
 scanf("%d %d %d", &N, &c, &d);
if(N < 0) {
 N = -N;
 }
while(N > 0) {
 a[i] = N % 10;
 N = N / 10;
 i++;
 }
for(j = 0; j < i; j++) {
if(a[j] == c) {
 a[j] = d;
 }
 }
for(j = i - 1; j > 0; j--) {
 printf("%d", a[j]);
 }
 printf("%d\n", a[0]);
return 0;
 }
Подскажите, что я не учёл?

Код к задаче: «Заменить в числе каждое вхождение цифры a на цифру b - C (СИ)»

textual
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main() 
{
    int N,c, d,i=0;
    char a[14];
    scanf("%d %d %d", &N, &c, &d);
    if(N < 0)N = -N;
        if(c>9)c=9;
        if(c<0)c=0;
        if(d>9)d=9;
        if(d<0)d=0;
    while(N > 0) 
    {
        a[i] = (N % 10);
        if(a[i] == c)a[i] = d;
        a[i]+='0';// превратили в букву
        N = N / 10;
        i++;
    }
    a[i]=0;// конец строки 
    strrev(a); // перевернули строку
    sscanf(a,"%d",&N);// превратили в число
    printf("%d",N);
    getch();
    return 0;
}

6   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ