判断素数的题,系统报错说少了一个分号,请问哪错了

2024-12-27 11:09:43
推荐回答(5个)
回答1:

这个程序有两个问题:
第一、这里用到了函数调用,在不同的函数中可以用采用相同的变量名,但是代表的是不同的变量,如果你要从主函数中获取,就要进行相应的值传递,被调用的函数也应该有个返回值,而不是空返回;
修改:主函数中int sushu();改为 int sushu(a);
调用函数的函数首部void sushu()改成int sushu(int a),并把后面的定义中的a去掉;

第二、sushu函数中的i会一直增加到i=a/2;
假如a=9,当i=3时,我们就可以判断出a不是素数,此时应该停止循环,否则 程序会再往下循环;i=4,此时得到的b=1,又把之前得到的结论“不是素数”改成“是素数”,所以在这里面有问题;
修改方法有两种,第一种:在if语句中添加break语句;
if(a/i==0)
{
b=0;
break;
}

第二:给b赋上初值1,在判断中,去掉else语句;
int sushu(int a)
{
int b=1,i;
for(i=2;i {
if(a/i==0)
{
b=0;
}
}
}

回答3:

int sushu()?
void sushu()?
哥哥你这样是错误的!好好看看书吧!

回答4:

函数声明和函数调用要一致,你一个int一个void 明显不一致。。void不用返回值,int 则要返回一个值,你看着办吧。

回答5:

=.=
囧...
不知怎么讲了