从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和 我编的这个程序怎么错了(C语言) 10

#include<stdio.h>main(){intn,sum=0,i,m=0,j;printf("Inputn:");scanf("%d",&n);if(n==1)s... #include<stdio.h>
main()
{
int n,sum=0,i,m=0,j;
printf("Input n:");
scanf("%d",&n);
if(n==1) sum=0;
else if(n==2) sum=2;
else {
for(i=3;i<=n;i++){
for(j=2;j<i;j++){
if(i%j==0) m++;
}
if(m==0) sum=sum+i;
}
sum=sum+2;
}
printf("sum = %d\n",sum);
}
展开
 我来答
问明6E
高粉答主

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

#include&lt;stdio.h&gt;

int main()

{

int n,i,j,t,l;

int sum=0;

printf("请输入一个大于2的整数:");

scanf("%d",&n);

l=n;

for(;n&gt;=2;n--)

{

for(i=2;i&lt;n;i++)

{

if(n%i!=0)//判断其为素数

t=1;

else

{

t=2;

break;

}

}

if(t==1)

{

sum+=n;

//printf("%d",n);//输出1-n之间的所有素数

}

}

printf("1-%d之间的所有素数和为:%d\n",l,sum);

return 0;

}

运行如下:

以15为例:

因为:1-15之间的素数有13、11、7、5、3、2

所以:13+11+7+5+3+2=41

扩展资料:

用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

听不清啊
高粉答主

2017-03-24 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

main()

{

int n,sum=0,i,m=0,j;

printf("Input n:");

scanf("%d",&n);

if(n==1) sum=0;

else if(n==2) sum=2;

else {

sum=2;

for(i=3;i<=n;i+=2){

m=1;

for(j=2;j<i;j++){

if(i%j==0) {m=0;break;}

}

if(m) sum=sum+i;

}

}

printf("sum = %d\n",sum);

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2017-03-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6361万
展开全部
在for(j=2;j<i;j++)前加一句m=0;试试……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桐谷shiro
2018-05-28
知道答主
回答量:6
采纳率:0%
帮助的人:4911
引用听不清啊的回答:
#include<stdio.h>
main()
{
int n,sum=0,i,m=0,j;
printf("Input n:");
scanf("%d",&n);
if(n==1) sum=0;
else if(n==2) sum=2;
else {
sum=2;
for(i=3;i<=n;i+=2){
m=1;
for(j=2;j<i;j++){
if(i%j==0) {m=0;break;}
}
if(m) sum=sum+i;
}
}
printf("sum = %d\n",sum);
}

展开全部
(我指的是最佳答案的那位)如果按你这样做,那么当n为负数的时候,就无法正确得出答案了,如n=-12时,输出变成了-2,显然错误;应该在if的后面再加入一个else if(n<0) sum=0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式