Почему вместо программы с номером c написана концепция с цифрами, а не та, что приведена ниже? - PullRequest
0 голосов
/ 16 января 2019
void rev(int n){
        int rem;
        printf("reverse of that number is:");
        while(n>0)
        {
            rem=n%10;
            n=n/10;
            printf("%d",rem);
        }
    }
    int main()
    {
        int n;
        printf("enter a number of more than two digits");
        scanf("%d",&n);
        rev(n);
        return 0;
    }

Этот код без написания фрагмента кода для цифр мест, т. Е.,

reverse = reverse * 10 + remainder;

также возвращает то же самое. пожалуйста, объясните, если есть какая-то ошибка в моей перспективе. С уважением.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Что вы будете делать, если кто-то попросит вас добавить целое число X с обратным числом данного числа? Подсчет обратного числа всегда является хорошей идеей, чем просто печатать его от последней цифры к первой. Это небольшое изменение в вашем коде может быть очень полезным:

void rev(long long n){
    long long rem = 0;
    printf("reverse of that number is:");
    while(n>0)
    {
        rem= rem*10+(n%10);
        n=n/10;
    }
    printf("%lld",rem);
}

Здесь вы также можете вернуть значение rem для дальнейшего использования.

UPDATE:

Как говорит @Weather Vane, что если пользователь захочет увидеть обратное число с ведущими нулями (если есть), единственный способ ввести число в виде строки. и переверни это. Строка может измениться с помощью функции strrev () из <string.h>

strrev(string_name);

Если это строка STL , тогда будет полезна функция reverse () из <algorithm>.

reverse(string_name.begin(), string_name.end());

Если вы хотите получить целое число из строки , вы можете сделать это следующим образом:

long long str_to_num(string s)
{
    long long integer = 0;
    for(int i = 0; i < s.size(); i++){
        integer = integer*10+(s[i]-'0');
    }
    return integer;
}
0 голосов
/ 16 января 2019

Поскольку вы на самом деле не поменяли число, вы просто печатаете его. Если вы хотите сохранить обратный номер и использовать его позже, вы должны сделать reverse = reverse * 10 + remainder;

...