while循环c ++中的非法指令
Illegal instruction in while loop c++
我被指派编写一个简化有理数的程序。我想要做的是计算 gcd,然后将数字除以 gcd。但是程序returns一个很奇怪的错误。
代码:
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 循环时崩溃。但是我看不出有什么问题。
确实,问题出在 while
循环上。完成后,b
实际上是 0,所以后面的除法会引发这些错误。
我想你想要的是 a
而不是 b
。
我被指派编写一个简化有理数的程序。我想要做的是计算 gcd,然后将数字除以 gcd。但是程序returns一个很奇怪的错误。
代码:
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 循环时崩溃。但是我看不出有什么问题。
确实,问题出在 while
循环上。完成后,b
实际上是 0,所以后面的除法会引发这些错误。
我想你想要的是 a
而不是 b
。