引用变量赋值逻辑
Reference variable assignment logic
好的,所以我正在制作一个函数,通过计算最大公因数来减少有理数,然后 return 是 reducing/simplifying 之后的新分子和分母。例如:24/60 到 2/5。
void reduce(int &num, int &den){
int remainder = num % den;
while(remainder!=0){
num = den;
den = remainder;
remainder = num % den;
cout << "gcf: " << remainder << endl;
break;
}
num = num / remainder;
den = den / remainder;
}
该函数应该 return num = 2 和 den = 5。但是,由于某种原因,它 returning num = 5 和 den = 2。
我的主要功能是这样的
int main() {
int num = 24;
int den = 60;
reduce(num, den);
cout << num << " " << den;
// Output:
// gcf: 12
// 5 2
您正在 while
循环内更改 num
和 den
。该值不应更改。
请将 num
和 den
变量存储在其他变量中,并使用这些值进行如下操作。
void reduce(int &num, int &den){
int remainder = num % den;
int tempNum = num, tempDen = den;
while(remainder != 0){
tempNum = tempDen;
tempDen = remainder;
remainder = tempNum % tempDen;
cout << "gcf: " << remainder << endl;
break;
}
num = num / remainder;
den = den / remainder;
}
int main() {
int num =24;
int den = 60;
reduce(num,den);
cout << num << " " << den;
return 0;
}
好的,所以我正在制作一个函数,通过计算最大公因数来减少有理数,然后 return 是 reducing/simplifying 之后的新分子和分母。例如:24/60 到 2/5。
void reduce(int &num, int &den){
int remainder = num % den;
while(remainder!=0){
num = den;
den = remainder;
remainder = num % den;
cout << "gcf: " << remainder << endl;
break;
}
num = num / remainder;
den = den / remainder;
}
该函数应该 return num = 2 和 den = 5。但是,由于某种原因,它 returning num = 5 和 den = 2。
我的主要功能是这样的
int main() {
int num = 24;
int den = 60;
reduce(num, den);
cout << num << " " << den;
// Output:
// gcf: 12
// 5 2
您正在 while
循环内更改 num
和 den
。该值不应更改。
请将 num
和 den
变量存储在其他变量中,并使用这些值进行如下操作。
void reduce(int &num, int &den){
int remainder = num % den;
int tempNum = num, tempDen = den;
while(remainder != 0){
tempNum = tempDen;
tempDen = remainder;
remainder = tempNum % tempDen;
cout << "gcf: " << remainder << endl;
break;
}
num = num / remainder;
den = den / remainder;
}
int main() {
int num =24;
int den = 60;
reduce(num,den);
cout << num << " " << den;
return 0;
}