Разработка 3-значного решения без использования арифметики.(Подсказка: используйте scanf.) - PullRequest
0 голосов
/ 11 февраля 2019

В настоящее время я изучаю C как часть курса, и у меня есть задача изменить порядок чисел без использования арифметики [Разработка 3-значного решения без использования арифметики (Подсказка: используйте scanf)].В настоящее время у меня есть это:

#include <stdio.h>

int main()
{

    int n;
    printf("Enter a two-digit number: ");
    scanf("%d", &n);
    printf("The reversal is: %d%d\n", n % 10, n / 10);

    return 0;
}

Я ожидаю, что выход 123 будет 321, но фактический выход составляет 312

1 Ответ

0 голосов
/ 12 февраля 2019

Ваш код использует правильный метод для решения поставленной задачи.Однако трудно работать только с 2-значными числами.

Для печати единицы измерения вы печатаете число% 10.
Чтобы напечатать цифру десятков, вы печатаете (num / 10)% 10.
Чтобы напечатать цифру сотен, вы печатаете (num / 100)% 10.

Шаблон здесь:

1                   10                   100                  ...      1n
(num/(10^0))%10     (num/(10^1))%10      (num/(10^2))%10               (num/(10^(n)))%10

Используя эту логику, вы можете изменитькод для работы с 3-значными числами, например:

#include <stdio.h>

int main()
{

    int n;
    printf("Enter a two-digit number: ");
    scanf("%d", &n);
    printf("The reversal is: %d%d%d\n", n % 10, n / 10 % 10,n / 10 / 10);
    //printf("The reversal is: %d%d%d\n", n % 10, n / 10 % 10, n / 100);

    return 0;
}

Удачного кодирования и добро пожаловать в Stack Overflow!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...