关于c语言编写加法2/1+3/2+5/3+.....的前二十项和 帮忙看下哪里出错了

作者&投稿:夏亨 (若有异议请与网页底部的电邮联系)
关于C语言编程计算1!+2!+3!+…+20!。的问题!~

printf("1!+2!+....+20!=%ld
",t);
%ld 是以双精度浮点型输出, 不知道你是否为你的笔误,输出的应该是 s 吧.
用断点调试可以看到: 在进行第14次运算的时候,s的值已经为负,说明s的值已经超越了long的最大值,
而你输出的是 t ,表面上看n=19时输出的是正值,好像是正确的,其实 t 的值在第17次运算时已经不正确了.

int i, sum;是c程序在函数内部定义的变量,仅分配了内存,里面存放的内容是随机的数值,不能使用。
sum=sum+i是累加器的用法,取sum原来的值加i后再赋给sum。如果sum初值错误,累加器无效。
所以,有口诀:“累加器必清零”。即int i, sum=0;
希望对你有帮助。

你的c=a/b;由于a,b都是int类型,a/b将得到int类型的数,所以这里应该先将一个变量强制类型转换为float类型。程序如下:
#include "stdio.h"
void main()
{
int a=2,b=1,n=1;
float c,d=2;
while(n<21)
{
a=a+b;
b=a-b;
c=( float )a/b;
//当不加类型转换时,可以看出c为1.000
//printf( "%f\n", c );
d=c+d;
n=n+1;
}
printf("%f",d);

}

根据你的要求:n赋的初值应该是2,不是1。

b=a-b;
此句,b=a-b=(上次的a+b)-b=上次的a
也就是说,你的b是2,3,5,8这样子的。
改进:
把b直接等于n即可。

#include "stdio.h"
void main()
{
float a=1,b=1,n=1;
float c,d=0;
while(n<21)
{ b=b+1;
a=a+b;
c=a/b;
d=c+d;
n=n+1;}
printf("%f",d);

}

这样写就好了

#include<stdio.h>
void main()
{
float a= 2,i,sum=0;
for(i=1;i<21;i++)
{
sum+=a/i;
a +=i;
}
printf("%f",sum);
}

#include "stdio.h"
void main()
{
float a=1,b=2,c,d,sum;
int i;
sum=b/a;
for(i=2;i<=20;i++)
{
d=b/a;
b=b+a;
a=b-a;
sum=sum+d;

} printf("%f",sum);
getch();
}


求教:C语言两个数的加法算法。
,result);flag=3;for(;(flag!=1)&&(flag!=2);){ printf("1、继续,2、退出\\n");scanf("%d",&flag);if(flag!=1&&flag!=2)printf("请按正确的格式输入\\n");} } } 这段代码可以实现两个浮点数的加法,并且有友好的人机对话。算完一次后,可以通过提示输入决定是否继续程序 ...

...以内的整数位求出他们的和并输出。我才接触c语言,要求这个
include <stdio.h> \/\/printf() need include \/\/time() need include <stdlib.h> \/\/srand() need int main(){ int a, b ;srand(time(NULL)) ; \/\/设置随机种子 a=rand()%100; \/\/生成一个100以内的数 b=rand()%100;printf("%d+%d=%d", a,b,a+b );return 0;} ...

用C语言实现两个任意100位长整数的加法运算
include<stdio.h> include<string.h> char s[100001];int a[100001],b[100001],c[100001];int main(){ long i,j,k,m,n;long alen,blen,clen;gets(s);alen=strlen(s);for(i=alen-1;i>=0;i--)a[alen-i]=s[i]-'0';gets(s);blen=strlen(s);for(i=blen-1;i>=0;i-...

用C语言编程“使用数组完成两个超长(长度小于100)正整数的加法。”
char a[101],b[101],c[101],d='0'; \/\/声明1001个长度的数组,就能求1000位的加法 printf("enter two number:\\n");scanf("%s",b);scanf("%s",c);f(b,a);f(c,b);for(i=0;a[i]!='\\0'&&b[i]!='\\0';i++)if((a[i]+b[i]+d)%48>=10){ c[i]=(a[i]+b[...

C语言如何保证两个两位数做加法,答案还是两位数
要实现任意大小两个整数相加,那么就不能存在溢出情况。所以无法使用任何系统类型,唯一的方式是用数组模拟整数存储,并自行实现加法操作算法。需要注意以下几点:1大数如何存储及输出;2计算时进位的处理;3两个计算数长度不同时的处理;4当达到最高位仍有进位的处理,即结果的长度大于任意一个操作数。以下...

求教:C语言两个数的加法算法。
,result);flag=3;for(;(flag!=1)&&(flag!=2);){ printf("1、继续,2、退出\\n");scanf("%d",&flag);if(flag!=1&&flag!=2)printf("请按正确的格式输入\\n");} } } 这段代码可以实现两个浮点数的加法,并且有友好的人机对话。算完一次后,可以通过提示输入决定是否继续程序 ...

编写C语言程序,给小学生出1道100以内2个数的加法题,等学生说出自己的答...
include<stdio.h> void main(){ int a ,b,sum,num;printf("输入100以内的两个数:");scanf("%d %d",&a,&b);if(a>100||a<0||b>100||b<0){ printf("输入100以内的两个数:");scanf("%d %d",&a,&b);} sum=a+b;printf("请输入你的答案:");scanf("%d",&num);if(num)p...

c语言二进制数的加减运算
1、二进制加法基本指令 (1)ADD指令 格式:ADD DST,SRC 该指令把源操作数(SRC)指向的数据与目的操作数(DST)相加后,将结果放到目的操作数(DST)中,所执行的操作:(DST)ß(SRC)+(DST)SRC和DST不能同时为存储器操作数和段寄存器,同时SRC和DST的数据类型要匹配,要同是字节或字。受...

C语言中,如何“利用字符数组实现两个大整数的加法”?
for(i=l-2;i>=0;i--)printf("%c",s[i]); \/\/其余的原样输出 } else for(i=l-1;i>=0;i--)printf("%c",s[i]); \/\/直接输出 } main(){ char a[101],b[101],a1[101],b1[101],sum[101]={0};int q,l;printf("请输入大整数字符a\\n ");gets(a1); \/\/输入字符a1...

C语言如何算两个小数加法,不用double,
加法不会改变精度,和用不用double没什么关系。乘法是需要考虑精度的,可以自己定义一个数据类,用数组或者什么其他的来存储每一位的数字,然后各种运算就写成算法好了。

榕江县15234915579: 求大神帮忙用C语言编写一个简单的加法程序 -
袁缪复方: #include <stdio.h> void main() { int j; float number[100]; float sum=0; j=0; for(j=0;j <100;j++) { scanf( "%f ",&number[j]);if(number[j]!=0) printf( "+ "); if(number[j]==0) break; sum=sum+number[j]; } printf( "%f ",sum); }

榕江县15234915579: 求一个c语言的加法编程 -
袁缪复方: #include "stdio"int main(){float i,j,k,sum;print("请输入三个数\n");scanf("%f%f%f",&i,&j,&k);sum=i+j+k;printf("%0.3f%0.3f%0.3f",i/sum,j/sum,k/sum);return 0;}中间的换行应该不是问题吧

榕江县15234915579: C语言运算加法写法 -
袁缪复方: 都一样,不过++a比a++快,因为没有中间变量

榕江县15234915579: 跪求用c语言编一个加法的程序 -
袁缪复方: #include<stdio.h> int main(void) { int a,b; printf("请输入两个加数a,b"); scanf("%f,%f",&a,&b); printf("%f",a+b); getch(); return 0; }

榕江县15234915579: 用C语言编一个程序,产生加法算术题 -
袁缪复方: #include <stdlib.h> main() {int a,b,s,i,n=0;<br/> for(i=0;i<50;i++)<br/> {a=random(10);<br/> b=random(10);<br/> printf("%d+%d=",a,b);<br/> scanf("%d",&s);<br/> if((a+b)==s) n+=2;<br/> if((a+b)!=s)<br/> {printf("incorrect,enter the number ...

榕江县15234915579: 用C语言程序编写如下程序 从键盘上输入两个加数 按如下样式 输入 1 2 输 -
袁缪复方: #include"stdio.h" void main() { int a,b; scanf("%d %d",&a,&b); printf("%d+%d=%d",a,b,a+b); }

榕江县15234915579: 4位二进制加法 c语言程序如何编写 急用 -
袁缪复方: //...//自己编译下试试.//专门为你写的啊,如果可用一定要给分哦.#include <stdio.h>#include <stdlib.h>#define ERR printf/* char *myItoa (int n,const char * ch) { ¡¡sprintf(ch,"%d",n); ¡¡return ch; }*//* int binA2Dec(char * ch,int len) { int sum,i; ...

榕江县15234915579: c语言~~高精度加法~~ -
袁缪复方: 编个大数类.下面是我编过一个不成熟的,可以运行加减乘:#include<iostream> using namespace std; class big { public: big() { high=1; num[0]=1; int n; for(n=1;n<40;n++) { num[n]=0; } } big(int hi) { high=hi-1; num[0]=1; int n; for(n=1;n<40;n++) { ...

榕江县15234915579: C语言的两个数相加怎么写? -
袁缪复方: int a,b,c; scanf("%d%d",&a,&b); //输入a,b c=a+b; //两数相加给c printf("%d",c); //输出cC语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要...

榕江县15234915579: 帮我编个C语言简单加法程序 -
袁缪复方: #include <stdio.h> void main() {int i,j=0;for(i=1;i<100;i=i+2){j+=i;}printf("%d\n",j); }

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