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

2024-12-30 16:17:23
推荐回答(4个)
回答1:

#include<stdio.h>

int main()

{

int n,i,j,t,l;

int sum=0;

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

scanf("%d",&n);

l=n;

for(;n>=2;n--)

{

for(i=2;i<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("<格式化字符串>",<参量表>)。

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

回答2:

#include

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

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

}

if(m) sum=sum+i;

}

}

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

}

回答3:

在for(j=2;j

回答4:

(我指的是最佳答案的那位)如果按你这样做,那么当n为负数的时候,就无法正确得出答案了,如n=-12时,输出变成了-2,显然错误;应该在if的后面再加入一个else if(n<0) sum=0;