//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
int main(void){
int m,i;
double s;
while(1){
printf("Enter m(m>0)...\nm=");
scanf("%d",&m);
if(m>0) break;
printf("Error, redo: ");
}
for(s=0,i=1;i<=m;i++)
s += i&1 ? 1.0/i : -1.0/i;
printf("The result is %f\n",s);
return 0;
}
#include
#include
#include
int main()
{
double i;
double times;
double sum1,sum2;
printf("指定的次数:");
scanf("%lf",×);
sum1=0;
sum2=0;
while (times>0)
{
for (i=1.0;i<=times;i++)
{
sum1=sum1+1.0/i ;
sum2=sum2+pow(-1.0,i+1.0)*1.0/i;
}
printf("sum1=%lf\n",sum1);
printf("sum2=%lf",sum2);
scanf("%lf",×);
sum1=0;
sum2=0;
}
printf("Done\n");
return 0;
}
这里的sum1可以不看,是1+1/2+1/3+...+1/n的。
sum2则是题主的1-1/2+1/3...+1/n
可以看成两个序列,正数和负数的。手动算下两个累加和公式相减。。把m替换为变量,代表你的输入值
#include
int main()
{
int i, m;
float s;
printf("Enter m: ");
scanf("%d", &m);
if (m <= 1) {
printf("m 必须大于1\n");
return 0;
}
s = 1.0;
for (i = 2; i <= m; i++) {
if (i & 1) // i 是奇数
s += 1.0 / (float)i;
else
s -= 1.0 / (float)i;
}
printf("s=%f\n", s);
return 0;
}
因为我们老师经常说,这个是无限小数,所以就等于1你们说对吗1+1/2+1/3+1/4+1/5, 到1/50是不是等于1