Я написал программу для хранения числа (которое предопределено программистом) в виде цифр в массиве.
Например, если я хочу сохранить число 1234 в массиве arrx [4], то его элементы будут:
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
Я пытаюсь добиться этого, используя следующий фрагмент кода:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int arrx[4]; // Stores the individual digits of number as array
int digx = 4; // Total number of digits in number
int i;
long int dupx = 1234; // Number which has to be stored in array
for(i = digx-1; i >= 0 ; i--)
{
arrx[digx-i-1] = int(dupx/pow(10,i));
dupx = dupx%(pow(10, i));
}
return 0;
}
Однако, когда я пытаюсь скомпилировать приведенный выше код, я получаю следующее сообщение об ошибке:
ошибка: недопустимые операнды типов 'long int' и 'double' для двоичного оператора '%'
Единственный вывод, который мне удалось сделать из вышеуказанной ошибки, заключался в том, что проблема связана с оператором модуля.
Поэтому у меня в голове следующие вопросы
В чем конкретно проблема с кодом, содержащим оператор модуля?
Как это исправить?
Я использую Code :: Blocks версии 17.12 с GNU GCC в качестве моего компилятора.