Дох, я мог бы потратить слишком много времени далеко от C, потому что я думаю, что большинство ответов здесь не достигают конечной цели ... Конечно, совет по удалению & отлично, но есть несколько других сканф.
Во-первых, для выбрасывания кода / домашнего задания все должно быть в порядке, но это опасно: наберите 11 символов и получите переполнение буфера.
Во-вторых, IIRC, так как вам нужен номер, вы должны использовать переменную int и получить ее. Непроверенный код от ржавого ума:
int inputNumber;
scanf("%d", &inputNumber);
Здесь вам нужен символ &, потому что у вас больше нет указателя.
C должен сделать преобразование для вас, и у вас есть более безопасный ввод.
Другой проблемный код:
int a = pow(input[0], 3);
Вы делаете не математику с первой цифрой, а со значением Ascii первой цифры! То есть. 49 за 1, 50 за 2 ...
Поскольку вы получили число из моего предыдущего исправления, разделите его на правильную степень 10, чтобы получить цифру.
Если вы предпочитаете идти по строковому маршруту, используйте как минимум input[0] - '0'
.