关于c语言的问题1 、求 1+1/2+1/4+1/7+1/11+1/16+1/22+...... 的值,直到最后一项的值小于 10 的 -5 次方

我写了如下程序 可输出的结果不对,求 大神看看

#include<stdio.h>
int main()
{
intm,n,k;
doubles;
while(1.0/n>=1e-5)
{s=1.0;n=1;k=1;
m=n;
n=m+k;
k++;
s=s+1.0/n;}

printf("%f",s);
return0;
}

#include<stdio.h>
int main()
{
int m,n=1,k=1;
double s=1.0;
while(1.0/n>=1e-5)
{
m=n;
n=m+k;
k++;
s=s+1.0/n;
}
printf("%lf",s);
return 0;
}
你的程序这里出了问题,
while(1.0/n>=1e-5)
{s=1.0;n=1;k=1;
。。。
}
每次循环s,n,k的值不会改变的,

其他的基本上没什么问题了,你再编译试试看
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-08
#include <stdio.h>

int main()
{
int n=1,m=0;
double s=0;
while(1.0/n>=1e-5)
{
n+=m;
s+=1.0/n;
m++;
}
printf("%lf\n",s);
return 0;
}
第2个回答  推荐于2018-04-04
#include<stdio.h>
int main()
{
int m,n,k;
double s;
s=1.0;n=1;k=1;
while(1.0/n>=1e-5)
{
m=n;
n=m+k;
k++;
s=s+1.0/n;
}
printf("%f",s);
return 0;
}

...while循环,求1+1\/2+1\/4+1\/7+1\/11+1\/16+1\/22+... 的值,直到最后一项...
int i=0;double sum=0,c=1;do{ sum=sum+1\/c;c=c+i;i++;} while(1\/c>1e-5);printf("sum=%f\\n",sum);return 0;}

1. 用公式 求s=1+1\/2+1\/4+1\/7+1\/11+1\/16+1\/22+1\/29...的近似值,直到最 ...
\/\/s=1\/a[1]+1\/a[2]+..+1\/a[n]\/\/a[1]=1, a[n+1]=a[n]+n void main(){ int i,a=1,loop=100000;double sum=0,temp,error=1e-4;for(i=1;i<loop;i++){ temp=1.0\/a;if(temp<error)break;sum+=temp;a=a+i;} printf("s=%f\\n",sum);} ...

...SUM=1+1\/2+1\/4+1\/7+1\/11+1\/16+1\/22+...+Sn-1+Sn
include<stdio.h> int main(void){ int count=1, n=1;double sum=1;do { n+=count;sum+= 1\/(double)n;count++;} while ( ( 1\/(double)(n-1)-1\/(double)n )>=10e-5 );printf("%lf", sum);} 10e-5很少有这么写的啊,写成1e-4貌似更多,你再看看题目是这样写的吗?如果...

C语言,这个算法是为了求1+1\/2+1\/4+1\/7+1\/11+1\/16...直到第n项<10^-5...
s=1\/j 改为s=1.0\/j

C语言编程:输出级数1+1\/2+1\/4+1\/7+1\/11+...的前n项之和,n由键盘输入0<...
double s;int n,i,t,k;printf("Enter n(int n>0)...\\nn=");if(scanf("%d",&n)==1 && n>0 && n<100001){\/\/输入项数 for(s=i=0,t=k=1;i<n;s+=1.0\/k,k+=t,t++,i++);\/\/计算 if(n>4)\/\/以下按规格输出 printf("1+1\/2+1\/4+...+1\/%d",k-t+1);else ...

C语言S=1+1\/2+1\/4+1\/7+1\/11+...,求前20项结果。
include <stdio.h>int main(){ double s=0; int i; int n=1; for(i = 0; i<20; i++) { n+=i; s+=1.0\/n; } printf("%lf\\n", s); return 0;}

c语言编程:s=1+1\/2+3\/1+4\/3+7\/4+11\/7+…..
算法大致如下:s=1;a=1;b=2;循环求 s=s+a\/b a、b变换:a为前项a、b之和,b为前项a 直到满足要求。程序就自己写吧

C语言求1,1\/2,1\/4,1\/7,1\/11……的和
一楼的错了吧人家的是1 2 4 7 11不是一个简单的等差数列 void main(){ double sum=0.0;int m=1;int n=1;printf("输入要几个数\\n");int count =0;scanf("%d",&count);for(int i=0;i<count;i++){ sum+=1.0\/m;m+=n;n++;} } ...

C语言,求1 1\/2 1\/4 1\/7 1\/11 1\/16 1\/22 1\/29…,当第i项的值<
这个题目的规律是:分母依次比前一项多1.2.3.4.5.6……i-1.i 因此总结规律得到第i项的分母比第1项的分母多“1到i所有数之和,因第1项分母为1,所以第i项的分母是i(i-1)\/2+1 故第i项是1\/(i(i-1)\/2+1)=2\/(i*i-i+2)怎么感觉是个数学题目...o(╯□╰)o ...

...1 - 1\/2 + 1\/3 -1\/4 + ... + 1\/99 - 1\/100 +...,直到最后一项的绝对...
你的第一个问题的程序就是:include <stdio.h> int main(){ int i = 1, sign = 1;double sum = 0, e;do { e = 1.0 \/ i;sum += e * sign;sign = -sign;i++;} while (e > 1e-4);printf("%f\\n", sum);return 0;} ...

相似回答