C语言问题。编写一个函数:int isprime(int n)用于判断一个整数是否为素数,如果是就返回1,否则返回0。

在主函数中通过循环调用isprime()函数输出300—500之间的素数,每输出10个素数后换行。isprime()定义在前,主函数在后。#include<stdio.h... 在主函数中通过循环调用isprime()函数输出300—500之间的素数,每输出10个素数后换行。isprime()定义在前,主函数在后。
#include<stdio.h>
int isprime(int n)
{
int i;
for(i=2;i<=n-1;i++)
if(n%i==0)
break;
if(i<n)
return 0;
else
return 1;
}
int main()
{
int isprime(int n);
int n,p,j=0;
for(n=300;n<=500;n++)
{
p=isprime(n);
if(p==1)
{
printf("%4d",n);
j++;
if(j%10==0)
printf("\n");
}
}
return 0;
}
这上面的为什么 i<n 就返回0呢?i 不是本来就要比n小才成立么?为什么反而不是素数?
展开
 我来答
问明6E
高粉答主

2019-06-03 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.9万
展开全部

int isPrime(int num) {

int divisor = 3;

int testLimit = num;

if (num < 2)

return 0;

if ( num < 4 )

return 1;

if (num % 2 == 0)

return 0;

while ( testLimit >= divisor ) 

{

if ( num % divisor == 0 ) 

return 0;

testLimit = num / divisor;

divisor += 2;

}

return 1;

}

扩展资料:

return的用法:

return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。

函数的定义一般是这样的,例如:

int a(int i)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字

{

...//省略函数体内容

return b;//b必须与函数头的返回值一致(此处为int型)

}

简单函数举例:

int addOne(int b)

{

return b+1;

}

该函数的作用是取得一个数,将这个数加上1,再将结果返回

调用时这样:

int result=addOne(2);//此时result的值为3

函数括号里的参数也可以为变量或能算出值的表达式

以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)

但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如void print()//括号中为空表示无传递参数、

{

printf("a");

printf("b");

return;//函数执行到此处结束

printf("c");

}//该函数只执行到return语句处,即屏幕上输出的为"ab"

吉祥二进制
高粉答主

推荐于2017-11-26 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84579

向TA提问 私信TA
展开全部

应该是因为使用了break语句,作者想来想去就写出来这种神码了。 不用管它,你理解的是对的,它的代码改一下 可以简单些。如下! 没来来 0x30吧玩


int isprime(int n)
int i;
for(i=2;i<=n-1;i++)
        if(n%i==0) break;
 if(i<n)return 0;
  else  return 1;
  /*
  不如直接写成
  for (i=2; i<=n-1; i++) { if (n%i==0) return 0;}
  return 1;
  */
}
追问
!!!!谢谢!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8e773d301
2013-11-21 · TA获得超过328个赞
知道小有建树答主
回答量:76
采纳率:0%
帮助的人:104万
展开全部
你想想 如果n是2的倍数 刚刚进入循环就退出了 则i=2 这时i<n 当然不是质数啦

只有经过重重考验 才能i==n 这才是质数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
此处很假
2013-11-21 · 超过14用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:40.4万
展开全部
这个程序应该不能完成任务吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式