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

作者&投稿:营育 (若有异议请与网页底部的电邮联系)
c语言:从键盘任意输入一个整数n,编程计算并输出1-n之间的所有素数之和~

#include
#include
int prime(int x){
int i;
for(i=2;i<=(int)sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
void main(){
int n,i,j,sum=2;
printf("n=
");
scanf("%d",&n);
printf("小于等于%d的素数
",n);
if(n>2){
printf("%4d",2);
j++;
}
for(i=3;i<=n;i+=2)
if(prime(i)==1){
printf("%4d",i);
sum=sum+i;
if(j!=0 && ++j%10==0)
printf("
");
}
printf("
和为%d",sum);
printf("
");
}

扩展资料:
c语言书写规则:
1.一个说明或一个语句占一行。
2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
参考资料:
百度百科-c语言

//没有那么复杂,下面是在你的程序基础上修改的。
#include
#include
int prime(int n); //判断素数,是返回1,否则返回0.
int main()
{
int sum = 0;
int ret;
int i = 0;
int n;

printf("Please input a number");
scanf("%d",&n);
for (i = 1;i <= n;i++)
{
ret = prime(i);
if (ret == 1)
{
sum +=i; //求和。
}
}
printf("The final sum is %d",sum);
printf("program is over");
return 0;
}


int prime(int n)
{
int j;
int a;
if (n <2)
{
return 0;
}
if (n == 2)
{
return 1;
}
else
{
for (j = 2;j < n ;j++)
{
a = n % j;
if(a==0)
{
return 0;
}
}

}

return 1;
}

#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
",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;)。

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



#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
",sum);

}



在for(j=2;j<i;j++)前加一句m=0;试试……

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


c语言由键盘任意输入一个整型数据,将其倒置,如输入12345,则输出54321...
include <stdio.h>int main(void) {long n,m;scanf("%ld",&n);for(m=0;n;n\/=10){m=m*10+n%10;}printf("%ld\\n",m);return 0;}

C语言:由键盘任意输入一个整数(变量zs)、一个实数(变量
include<stdio.h>int main(){ int zs; double ss; printf("请输入1个整数和1个实数,以分号间隔:"); scanf("%d;%lf",&zs,&ss); double sh=ss\/zs; printf("%.8f",sh); return 0;}运行截图:

用C语言 从键盘上任意输入一个正整数,判断是否为素数。
int shu(long unsigned num) \/\/判断一个给定的数num是不是素数 \/\/是返回1,否则返回0 { int t,i;t=sqrt(num)+1;for(i=2;i<t;i++){ if(num%i==0)break;} if(i==t)return 1;return 0;} int main(){ int n;printf("请输入任意一个正整数:");scanf("%d",&n);if (shu(n...

c语言编程从键盘输入一个任意正整数,求其各位数字立方和。
intmain(){ inta;scanf("%d",&a);intb[10]={0};intk=0;while(a){ b[k]=a%10;a=a\/10;k++;} printf("%d\\n",k);inti=0,sum=0;while(i<=k){ sum=sum+b[i]*b[i]*b[i];i++;} printf("%d\\n",sum);}

从键盘输入任意一个正整数,设计循环程序计算该整数有多少位?
int main(){ int x,n=0;printf("input a int value\\n");scanf("%d",&x);while (x != 0){ x=x\/10;n++;} printf("%d\\n",n);return 0;} 对于很大的正整数,例如有几十位,可以按字符串输入,用strlen 测定长度即可:include <stdio.h> int main(){ char x[80];int n;print...

C语言的典型例题从键盘输入任意一个正整数,判断它能被几个3整除。 比...
include<stdio.h> int main(){ int n,k;scanf("%d",&n);for(k=0;n%3==0;n\/=3)k++;printf("%d\\n",k);return 0;}

用C语言编写:从键盘输入任意一个正整数,求其各位数字立方和
void main(){ int x,sum=0,j;printf("请输入一个正整数:");scanf("%d",&x); \/\/输入一个数 while(x!=0) \/\/判断X是否为零 { j=x%10; \/\/取个位数字 sum+=j*j*j; \/\/累加其立方和 x\/=10; \/\/将高位降低一位 } printf("该数各位数的立方和为:%d.\\n",sum...

2,编程.实现从键盘输入的任意一个正整数n,输出n的各位数字的乘积.假 ...
2,编程.实现从键盘输入的任意一个正整数n,输出n的各位数字的乘积.假设n中没有0 例如输入n= 34输出2*3*4=24... 34 输出2*3*4=24 展开  我来答 1个回答 #热议# 职场上受委屈要不要为自己解释?听不清啊 高能答主 2015-04-01 · 把复杂的事情简单说给你听 知道顶级答主 回答量:7.8万 ...

C语言编程实现:从键盘中输入任意一个多位的整数(位数不确定),将其每一...
思路:定义一个字符数组,利用该数组接收键盘输入的整数,接着依次遍历该数组并输出。参考代码:include "stdio.h"int main(){ int i;char a[100];gets(a);\/\/接收键盘输入 printf("%c",a[0]);\/\/先输出第一个字符 for(i=1;a[i]!='\\0';i++)\/\/接着输出各个字符 printf("$%c"...

从键盘输入任意一个大于等于 0 的整数 n,然后计算 n 的阶乘,并把它 输...
参考代码如下:include<stdio.h> double getResult(int n){ if(n<=1)return 1;return getResult(n-1)*n;} int main(){ int n;scanf("%d",&n);printf("%d!=%.0lf",n,getResult(n));}

保康县19176653836: 帮我看看程序吧,从键盘输入任意一个整数n,编程计算并输出1~n之间所有素数之和 ,怎么改啊#include #include int prime(int i,int n );int main(){int sum = 0;... -
侯时氨苄:[答案] 主函数这样 int main(){ int sum = 0; int i; int n; printf("Please input a number:"); scanf("%d", &n); for (i = 1;i

保康县19176653836: c语言:从键盘任意输入一个整数n,编程计算并输出1 - n之间的所有素数之和 -
侯时氨苄: 你的程序中 判断素数并加和的部分有问题 在你的基础上修改如下 PS:main不需要改动 # include int SumPrime(int n) { int i; int k; int sum=0; for(i=2;i<=n;++i ) { for(k=2;k { if(i%k==0) break; } if(k == i) sum+= k; } return sum; } int main (void) { int n; int ...

保康县19176653836: C语言求助: 从键盘输入任意一个整数n,编程计算并输出1~n之间所有素数之和 要求: 使用模块化思想编程 -
侯时氨苄: #include <stdio.h> #include <math.h> int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/ { int i; if(n<2) return 0; for (i=2; i<=(int)sqrt((double)n); i++) if (n%i==0) return 0; return 1; } int main(void) { int i,sum=0,n; scanf("%d",&n); for (i=1; i<=n; i++) if(ss(i)) sum+=i; printf("prime sum=%d\n",sum); return 0; }

保康县19176653836: 用C语言编写程序从键盘输入一个正整数数n,输出n! -
侯时氨苄: 晚上好楼主,我已经编译通过请看图 谢谢采纳!#include <stdio.h> int Cacu(int n) { int i,sum=1; for(i=1;i<=n;i++) sum=sum*i; return sum; }void main() { int n,result; printf("please input a number for you to operate\n"); scanf("%d",&n); result=Cacu(n); printf("the result you want to get is:\n"); printf("%d\n",result); }图:

保康县19176653836: 编程,从键盘输入一个正整数n,计算该数的各位数字之和.例如输入数是5246,则输出结果应为17 -
侯时氨苄: #include int main() { int a; int sum = 0; scanf("%d",&a); if(areturn 0; while(a != 0) { sum += a % 10; a /= 10; } printf("%d\n", sum); return 1; }

保康县19176653836: java编程!!用户从键盘输入一个整数n,程序求出n的累加和并输出.(如:1+2+3+4+……+n) -
侯时氨苄: 使用for循环即可,代码如下:import java.util.Scanner; public class Demo07 { public static void main(String[] args) { System.out.println("请输入你要求和的数:");//提示用户输入 Scanner in = new Scanner(System.in); int max = in.nextInt()...

保康县19176653836: 编写程序,从键盘输入正整数n,计算n!并输出n和n!.(要求:分别用while、 -
侯时氨苄: 注意:如果将结果存放在int 型变量中,输入的n值必须小8,否则,结果超出了整型变量所允许的最大数看样子你的系统中sizeof(int)值为2.#include<stdio.h> void t1(int); void t2(int); void t3(int); void main(){int n;printf("n must be more than 0 ...

保康县19176653836: 帮我看看程序吧,从键盘输入任意一个整数n,编程计算并输出1~n之间所有素数之和 ,怎么改啊 -
侯时氨苄: 主函数这样 int main(){ int sum = 0; int i; int n; printf("Please input a number:"); scanf("%d", &n); for (i = 1;i <= n;i++){ if ( IsPrime(i) ){ sum += i; } } printf("The final sum is %d, program is over.", sum); return 0; } 子函数,你自己改了

保康县19176653836: C++编程:从键盘输入一个正整数n,编程计算1~n之间的奇数和. -
侯时氨苄: //#include "stdafx.h"//if the vc++6.0, with this line. #include using namespace std; int main(int argc,char *argv[]){ int n,i,s; cout << "input n(int n>=0)...\nn="; if(!(cin >> n) || n<0){ cout << "input error, exit...\n"; return 0; } for(s=0,i=1;i<=n;s+=i,i+=2)...

保康县19176653836: 用c语言,利用递归函数求n!,由键盘输入任一整数,求n! -
侯时氨苄: #include<stdio.h> double fun(int n) {if(n==0)return 1.0;return n*fun(n-1); } int main() {int n;scanf("%d",&n);printf("%.0lf\n",fun(n));return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网