我在完成以下任务时遇到了问题,主要是因为我不了解布尔函数的工作原理。 "编写一个名为Divisible的函数,它将两个数字作为参数。如果第一个数字是,则返回True 第二个数字均匀可分(无余数)。否则返回False。提示:使用%"
目前我所拥有的是:
int Divisible()
{
int firstNum;
int secondNum;
int result;
cout << "Please enter any integer: ";
cin >> firstNum;
cout << "Please enter another integer: ";
cin >> secondNum;
result == firstNum%secondNum;
}
我不知道该怎么做。我以为我可以将bool = 0指定为true,但事实并非如此。我对C ++仍然很陌生,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
这个问题要求你编写一个方法,将数字作为参数,而不是让你从标准输入中输入它们。
Boolean是c ++中它自己的一种类型,所以你希望该方法返回bool而不是int。 易于阅读的解决方案:
bool Divisible(int a, int b) {
int remainder = a % b; // Calculate the remainder of a and b.
if(remainder == 0) {
return true; //If the remainder is 0, the numbers are divisible.
} else {
return false; // Otherwise, they aren't.
}
}
或者更简洁:
bool Divisible(int a, int b) {
return (a % b) == 0;
}
更简洁:
bool Divisible(int a, int b) {
return !(a % b);
}
答案 1 :(得分:1)
在返回布尔值的方法中,您希望首先确定方法返回true时结果的值是什么,然后使用==
运算符来评估针对可接受结果得到的任何结果。< / p>
因此,在您的情况下,您正在尝试确定是返回true还是false,具体取决于第一个数字是否可被第二个数字整除。
你做的第一件事是你采取一个应该有效的案例,例如:
4, 2
您如何知道4
可以被2
整除?这意味着如果我将4除以2,则余数应为零。这是%
运算符返回的内容。如果您执行4 % 2
,则值为零。
好的,现在你得到了正确的结果,所以你现在简单地做的就是评估你得到的任何结果,如下所示:
int isDivisible(int a, int b)
{
const int acceptedAnswer = 4 % 2;
if ( a % b == acceptedAnswer )
return 1;
return 0;
}
如果你拥有它,你获得的任何价值都不等于你接受的答案将返回0
或not equal (!=)
,任何其他答案将返回1
或equal (==)
答案 2 :(得分:1)
创建功能或使用它们时,请务必记住以签名开头。
想想这个函数需要使用什么,以及它将返回什么。如果某些内容为true或false,则需要返回,这些值是数据类型bool
的值。就像在条件这样的if语句中一样,您可以使用==
,!=
等布尔运算符。
所以你需要返回一个bool并检查两个数字是否可以被整除。因此:
bool Divisible(int a, int b){
// == boolean operator that will return true if a%b evaluates to 0
// false if not
return (a % b) == 0
}
一旦你开始以这种方式思考功能,每个程序都会成为一个很棒的难题!
答案 3 :(得分:0)
你不回来;或者分配结果......
result = firstNum%secondNum;
return (result == 0); // Assuming you want 0 as true.
通常,值0
为false,任何非(!0
)的值为true。按照惯例,即1
。
答案 4 :(得分:0)
你所做的是正确的,但在最后一行你要比较一个未初始化的整数和结果(除法的余数)。
设置int result=0;
然后这样做:
return result==firstNum%secondNum; // checks if remainder is zero (true if zero)
你也可以做return (firstNum%secondNum)==0
此外,您的赋值要求一个函数,它接受两个数字作为参数(输入参数)。 所以你的函数原型应该是这样的:
bool Divisible(int a, int b);
你应该在函数中使用a和b,而不是像现在一样从stdin中获取输入。
答案 5 :(得分:0)
在赋值中明确写出该函数必须有两个参数。因此该函数可以采用以下方式(C ++)
inline bool Divisible( int n, int m ) { return ( n % m == 0 ); }
或(C)
inline _Bool Divisible( int n, int m ) { return ( n % m == 0 ); }
在最后一种情况下,您可以将返回类型_Bool替换为int。在使用C ++的第一种情况下,最好使用返回类型bool。 输入两个数字的请求应在函数之外。该功能仅允许确定一个数字是否可被其他数字整除。
答案 6 :(得分:0)
bool
是一种只能包含两个值的类型:true
和false
。你用它来表达真值,就像一个数字是否除以另一个。
在您的情况下,该功能可以按如下方式实施:
bool is_divisible(int a, int b)
{
return a % b == 0;
}