我试图编写将返回给定数字的相等分频器的代码。我不知道我错在哪里。有什么帮助吗?
代码:
#include <iostream>
#include <stdlib.h>
using namespace std; // So the program can see cout and endl
int main()
{
int Numerator;
cout<<"Enter Numerator: ";
cin>>Numerator;
int Denominator = 1;
while (Denominator < Numerator) {
int divresult;
int check;
divresult = (Numerator / Denominator);
check = divresult * Denominator;
if(check = Numerator){
cout << divresult <<endl;
}
Denominator++;
}
return 0;
}
期望的输出:
9
3
1
答案 0 :(得分:2)
该行:
if(check = Numerator){
应该是
if(check == Numerator){
您需要==
来检查相等性。 =
用于分配。你的编译器应该给你一个警告。
此外,如果您想要输出1
,还需要更改行:
while (Denominator < Numerator) {
到
while (Denominator <= Numerator) {
答案 1 :(得分:1)
这一行:
if(check = Numerator){
错了。使用==
检查是否相等,而=
导致将Numerator
的值分配给check
,然后if
表达式为真新的价值是真的。你的编译器应该给你一个关于这个错误的警告;如果没有,请打开警告。如果确实如此,请多注意警告。
答案 2 :(得分:1)
在C ++中,比较运算符为==
if ( check == Numerator ) { ...