重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
楼主的代码看的真是让我蛋疼,全局太多、函数定义和声明参数都没有类型、判断是否素数居然返回double、printf用法错误...各种我就不说了,给你修改了一下,编译运行成功,代码如下:
成都创新互联公司是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十余年时间我们累计服务了上千家以及全国政企客户,如公路钻孔机等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。
#includestdio.h
bool prime(int x);
int main()
{
int m,n,count=0,i,sum=0;
scanf("%d",m);
scanf("%d",n);
for(i=m;i=n;i++){
if(prime(i))
{
count++;
sum=sum+i;
}
}
printf("count=%d,sum=%d\n",count,sum);
return 0;
}
bool prime(int x)
{
int a;
bool result = false;
for(a=2;a*a=x;a++)
{
if(x%a==0)
break;
}
if(a*ax)
result = true;
return result;
}
#includestdio.h
int sushu(int z);/*函数声明最好放在外面,放到文件前端*/
void main()
{
int b,a;
printf("enter a date:\n");
scanf("%d",b);
a=sushu(b);
if(a==0||b==0)
printf("no\n");
else
printf("yes\n");
}
int sushu(int z)
{
int i , j;/*i和返回值要分开,i要做循环标尺的*/
for(i=2;iz;i++)
{
if(z%i==0)
{
j=0;
break;/*一旦发现不是素数,跳出for循环*/
}
else
j=1;/*如果用i,就是个死循环,如果是素数,每次你把i=1后for循环一直继续*/
}
return j;
}
#include stdio.h
#include math.h
//判断是否为素数的函数
int isPrime(int n)
{
int i=2;
while(i=(int)sqrt(n))
{
if(n%i == 0)
return 0; //不是素数,直接返回0
else
i++;
}
return 1;
}
int main()
{
int n,i;
printf("输入一个正整数: ");
scanf("%d",n);
for(i=2;i=n;i++)
{
if(isPrime(i)) //调用函数,如果该数为素数,则输出
printf("%d ",i);
}
printf("\n");
return 0;
}
示例运行结果:
输入一个正整数: 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
先编写一个判断素数的函数,类型为bool型
bool Isprime(int number)
{
for (int i = 2; i number; i++)
if (number mod i != 0)
return false;
return true;
}
上面的代码还可以继续优化,只是给你提供个思路
然后在主函数里面循环调用这个函数 比如数组num[N] 循环N次,将num[i] 作为参数调用上面的函数,然后看返回值,如果未true 素数的个数+1,就可以了