判断素数的代码,反复改了多次,还是报了这个错,怎么也改不对,请各位大侠帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/24 08:34:15
#include <stdio.h>
void main()
{
int a,b;
scanf("%d",&a);
int sushu(int);
if(b=0)
{
printf("%d不是素数\n",a);
}
if(b=1)
{
printf("%d是素数\n",a);
}

}

sushu(int a)
{
int b=1,i;
for(i=2;i<a/2;i++)
{
if(a/i==0)
{
b=0;
}
return(b);
}
}

程序运行VC++6.0会报错:error C2143: syntax error : missing ';' before 'type'
您可以把代码粘过去试一下,看看是不是同一错误

修改如下:

//---------------------------------------------------------------------------

#include <stdio.h>
void main()
{
int a,b;
int sushu(int);/*注意这里*/
scanf("%d",&a);
b=sushu(a);/*注意这里*/
if(b==0)/*注意这里*/
{
printf("%d不是素数\n",a);
}
if(b==1)/*注意这里*/
{
printf("%d是素数\n",a);
}

}

sushu(int a)
{
int b=1,i;
for(i=2;i<a/2;i++)
{
if(a%i==0)/*注意这里*/
{
b=0;
break;/*注意这里*/
}

}
return(b);
}

//---------------------------------------------------------------------------

#include <stdio.h>
void main()
{
int a,b;
int sushu(int a);//用函数前先声明
scanf("%d",&a);
b=sushu(a);//这里是正式调用,将返回值赋值给b
if(b=0)
{
printf("%d不是素数\n",a);
}
if(b=1)
{