编写程序,输入两个正整数m和n,输出m和n之间的素数并统计素数的个数。要求定义并调用函数prime(m)
答案:3 悬赏:60
解决时间 2021-01-21 00:12
- 提问者网友:山高云阔
- 2021-01-20 13:13
编写程序,输入两个正整数m和n,输出m和n之间的素数并统计素数的个数。要求定义并调用函数prime(m)
最佳答案
- 二级知识专家网友:底特律间谍
- 2021-01-20 14:24
1、int prime(int a) 这个函数不对(可以说问题很大),for下面的代码并没有放在{}里面
2、int prime(int a)在你自己写的这个函数中,当i=2时会跳出来,不会按照你的预想执行到
i<=sqrt(a)
3、按照你程序的写法,并没有写出具体的素数有哪些,只是输出了有多少个
4、有个问题不知道你考虑了没,如果 m>n 怎么办,那么这时for(i=m;i<=n;i++) 这段代码会出现什么结果??
2、int prime(int a)在你自己写的这个函数中,当i=2时会跳出来,不会按照你的预想执行到
i<=sqrt(a)
3、按照你程序的写法,并没有写出具体的素数有哪些,只是输出了有多少个
4、有个问题不知道你考虑了没,如果 m>n 怎么办,那么这时for(i=m;i<=n;i++) 这段代码会出现什么结果??
全部回答
- 1楼网友:轮獄道
- 2021-01-20 17:16
把倒数第二行else去掉
追问:为什么呢?
追答:你这样写只要是奇数就返回1了
追问:为什么呢?
追答:你这样写只要是奇数就返回1了
- 2楼网友:动情书生
- 2021-01-20 15:43
#include<stdio.h>
#include<math.h>
int main()
{
int prime(int a);
int m,n,i,count=0;
printf("请输入两个正整数:");
scanf("%d,%d",&m,&n);
for(i=m;i<=n;i++)
{
if (prime(i)==1)
{
count++;
}
}
printf("这两个正整数之间的素数个数为:%d ",count);
return 0;
}
int prime(int a)
{
int i;
if(a==1)
return 0;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return 0;
return 1;
}
追问:
亲,为啥子明明一样的我的win8系统下就一直是0呢?
追答:你把代码复制过去再运行。原来的程序作了修改了。
还有,你输入的逗号,怎么那么“胖”呢,该减减肥了,要用英文的逗号。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯