car*_*rla 2 c++ primes numbers modulus perfect-numbers
问题是:"写一个函数来找出一个数字是一个素数还是一个完整的数字."
到目前为止,我已经完成了最完美的部分,这就是我所拥有的:
#include <iostream>
using namespace std;
bool perfectNumber(int);
int main()
{
int number;
cout<<"Please enter number:\n";
cin>>number;
bool perfectNumber(number);
return 0;
}
bool perfectNumber(int number)
{
int i;
int sum=0;
for(i=1;i<=number/2;i++)
{
if(number%i==0)
{
sum+=i;
}
}
if (sum==number)
return i;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,这段代码似乎有错误.我查看了这本书,但没有谈论这个话题.我想获得有关如何修复此代码的建议.
谢谢!
bool perfectNumber(number);
Run Code Online (Sandbox Code Playgroud)
这不会调用perfectNumber函数; 它声明一个名为perfectNumbertype 的局部变量,bool并使用number转换为type 的值对其进行初始化bool.
为了调用该perfectNumber函数,您需要使用以下内容:
bool result = perfectNumber(number);
Run Code Online (Sandbox Code Playgroud)
要么:
bool result(perfectNumber(number));
Run Code Online (Sandbox Code Playgroud)
另请注意:如果要从流中读取输入(例如cin>>number),则必须检查以确保从流中提取值成功.就像现在一样,如果你输入asdf,提取将失败并且number将保持未初始化状态.检查提取是否成功的最佳方法是测试流的状态:
if (cin >> number) {
bool result = perfectNumber(number);
}
else {
// input operation failed; handle the error as appropriate
}
Run Code Online (Sandbox Code Playgroud)
您可以在标记的语义上basic_ios了解有关如何设置和重置流错误状态的更多信息.您还应该参考一本优秀的入门级C++书籍,了解更多流使用最佳实践.
| 归档时间: |
|
| 查看次数: |
2779 次 |
| 最近记录: |