/*编写两个函数:一个函数void sum(int n)求指定范围1-n内所有素数的和;
另一个函数int fact(int m)判断一个数是否为素数;
要求在函数sum中调用函数fact判断是否为素数,然后求素数和*/
#include
using namespace std;
int m, n,i,j,k;
int fact(int m)
{
for (k = 2; k <= n; k++)
{
for (i = 2; i <= k; i++)
{
if (k % i == 0)
{
break;
return 0;
}
}
if (k == i)
return k;
}
}
void sum(int n)
{
int SUM = 0;
for (j = 2; j <= n; j++)
{
SUM += fact(j);
}
cout << "从一到这个数的所有素数之和为" << SUM<int main1()
{
int num;
cout << "please enter an intiger" << endl;
cin >> num;
sum(num);
system("pause");
return 0;
}
int main1() //为啥是main1?
这代码错误一大堆呀
1.break后面写return,return不会执行啊,把break删了
2.根据题意,fact只会返回0或1,1代表是素数,你不可以sum+=fact(j),你应该if(fact(j))sum+=j;
3.即使你想让fact能返回素数本身,那也应该return m而不是return k
4.fact函数里形参m根本没用上啊,n又是哪来的
5.for (i = 2; i <= k; i++),i不能等于k呀,否则任何数k%i都能整除
6.主函数是main不是main1
7.写一个函数就测试一个函数,别写了好几百行代码都没编译过,一编译一大堆错误,不麻爪了?