入门级C语言题,输入两个正整数a和b(a<b),输出在[a,b]区间内的所有素数的个数。
答案总是不正确,到底是哪里有问题啊?#include<windows.h>#include<stdio.h>intmain(){inta,b,c=0,d,e=0;scan...
答案总是不正确,到底是哪里有问题啊?
#include<windows.h>
#include<stdio.h>
int main()
{
int a,b,c=0,d,e=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
for(d=2;d<=i-1;d++){
if(i%d){
e++;
}
if(!(e-i+2)){
c++;
}
}
}
printf("%d\n",c);
system("pause");
} 展开
#include<windows.h>
#include<stdio.h>
int main()
{
int a,b,c=0,d,e=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
for(d=2;d<=i-1;d++){
if(i%d){
e++;
}
if(!(e-i+2)){
c++;
}
}
}
printf("%d\n",c);
system("pause");
} 展开
展开全部
scanf("%d%d",&a,&b);/*这里能不能加个空格或者逗号?否则计算机怎么知道你从哪里分割?*/
if(!(e-i+2)) /*这里是什么意思,说实话没想明白*/
if(!(e-i+2)) /*这里是什么意思,说实话没想明白*/
追问
有必要加空格么,该有的逗号都已经有了啊
那个就是if(e==i-2)啊,e,是一个计数器,也就是说当i分别除以从2到i-1这i-2个数若都除不尽的话那么素数计数器c就加一
追答
我知道怎么原因了.
因为你每判断一个数的时候,计数器e没有清0
算法没什么问题,只要把e=0加到
for(int i=a;i<=b;i++){
后面就可以了
展开全部
#include<windows.h>
#include<stdio.h>
int main()
{
int a,b,c=0,d,e=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
if(i==2)
{
c++;
}
else
{
for(d=2;d<=i-1;d++)
{
if(i%d==0)
break;
}
if(d==i)
c++;
}
}
printf("%d\n",c);
system("pause");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,c=0,d,e=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
if(i==2)
{
c++;
}
else
{
for(d=2;d<=i-1;d++)
{
if(i%d==0)
break;
}
if(d==i)
c++;
}
}
printf("%d\n",c);
system("pause");
return 0;
}
追问
这个算法是改的比我原来的好的多,我只是想问问原来的那种算法哪里错了?
追答
那你得先说说你原来算法的意图是什么,完全就没明白你的那个算法的意图啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<windows.h>
#include<stdio.h>
int main()
{
int a,b,c=0,d,e=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
for(d=2;d<=i-1;d++){
if (i%d) break;
if (i==d) c++;
}
}
printf("%d\n",c);
system("pause");
}
#include<stdio.h>
int main()
{
int a,b,c=0,d,e=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
for(d=2;d<=i-1;d++){
if (i%d) break;
if (i==d) c++;
}
}
printf("%d\n",c);
system("pause");
}
追问
这个算法是改的比我原来的好的多,我只是想问问原来的那种算法哪里错了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个算法是怎么来的?明摆着算法的问题
追问
我就是想问问算法有什么问题
追答
这个算法怎么来的,完全不知道在做什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询