Мне поручили написать программу, которая упрощает рациональное число.Я хочу вычислить gcd, а затем разделить числа на gcd.Но программа возвращает очень странную ошибку.
Код:
void read_rational(int& num, int& den) {
char bar;
if (cin >> num >> bar >> den) {
cout << "hi";
int a = num;
int b = den;
while (b != 0) {
int r = a%b;
a = b;
b = r;
}
num /= b;
den /= b;
}
}
INPUT: 10/2 OUTPUT: Illegal instruction (core dumped)
INPUT: 90/8 OUTPUT: Illegal instruction (core dumped)
Я попытался закомментировать некоторые фрагменты скрипта.Кажется, что программа дает сбой только при наличии цикла while.Но я не вижу, что с ним не так.