C语言程序 1-1/2+1/3-1/4+...+1/99-1/100

#include <stdio.h>
#include <math.h>
void main()
{
double sum;
int n,m;
printf("请输入n:");
scanf("%d",&n);
for(n=1,m=1,sum=0;n<100;n++)
{
sum+=m*(1.0/n);
m=-m;
}
printf("sum=%lf\n",sum);

}
怎么就不行-谢谢

你的输入n是什么意思?

如果是计算

1-1/2+1/3-1/4+...+1/99-1/100

那么不需要输入n,其他不变就是了


如果是计算

1-1/2+1/3-1/4+...+1/n

才需要输入n

代码如下(不需要math.h头文件):

#include <stdio.h>
void main()
{
    double sum;
    int i,n,m;        //加个变量i
    printf("请输入n:");
    scanf("%d",&n);
    for(i=1,m=1,sum=0;i<=n;i++)  //n改为i,100改为n
    {
        sum+=m*(1.0/i);
        m=-m;
    }
    printf("sum=%lf\n",sum);    
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-04
#include <stdio.h>
#include <math.h>
int main() //main 最好返回int,有时候是硬性要求……
{
double sum;
int n,m;
printf("请输入n:");
scanf("%d",&n);
for(n=1,m=1,sum=0;n<=100;n++)        //别忘了1/100
{
    sum+=m*(1.0/n);
    m=-m;
}
printf("sum=%lf\n",sum);
return 0; //main 最好返回int,有时候是硬性要求……
}

编译的时候别忘了加上-lm

然后应该没问题啊,

我都执行了……

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Mark>a
n:1
sum=0.698172

C:\Documents and Settings\Mark>

追问

不管输入多少 SUM都是这个啊 - -输入1 还是这个·这个就不科学了·

追答

把for语句的n=1删了

for(m=1,sum=0;n<=100;n++)

另外:

在for前面加上:

if(n%2==1) m=1;
else m=-1;

 -------------------


C:\Documents and Settings\Mark>a
n:1
sum=0.688172

C:\Documents and Settings\Mark>a
n:2
sum=0.311828

C:\Documents and Settings\Mark>a
n:3
sum=0.188172

C:\Documents and Settings\Mark>a
n:4
sum=0.145161

C:\Documents and Settings\Mark>a
n:5
sum=0.104839

C:\Documents and Settings\Mark>a
n:6
sum=0.095161

C:\Documents and Settings\Mark>a
n:7
sum=0.071506

C:\Documents and Settings\Mark>a
n:100
sum=0.010000

C:\Documents and Settings\Mark>

追问

n=1应该是等于1的 - -看下结果就知道 - -

追答

我是按照您最开始的时候的式子改的,不是1+1/2+1/3+...+1/n。

n=1的时候结果为啥等于1啊?我用肉眼硬是看不出来额……

第2个回答  2013-10-04
#include <stdio.h>
#include <math.h>
void main()
{
double sum;
int n,m;
printf("请输入n:");
scanf("%d",&n);
for(n=1,m=1,sum=0;n<100;n++)//这里应该是 n<=100 要把1/100也算进去
{
sum+=m*(1.0/n);
m=-m;
}
printf("sum=%lf\n",sum);

}
第3个回答  2013-10-04
这个每次都是负的啊 你得增加一个标志位 偶数是负的 奇数是正的 if(m%2==0)flag=-1:else flag=1;
第4个回答  2017-08-13

C语言程序 1-1\/2+1\/3-1\/4+...+1\/99-1\/100
那么不需要输入n,其他不变就是了 如果是计算 1-1\/2+1\/3-1\/4+...+1\/n 才需要输入n 代码如下(不需要math.h头文件):include <stdio.h>void main(){ double sum; int i,n,m; \/\/加个变量i printf("请输入n:"); scanf("%d",&n); for(i=1,m=1,sum=0;i...

C语言程序 1-1\/2+1\/3-1\/4+...+1\/99-1\/100
在while循环中sign=-sign这句来实现分母的加减。不过你这句有点问题,正确的形式应该是sign=(-1.0)*sign,这样就能实现你的构想了。在这个程序中,你先对sign赋初值为1,在while循环中,每循环到 sign=(-1.0)*sign时就会实现正负(加减)的变换了。

C语言计算1-1\/2+1\/3-1\/4+...+1\/99-1\/100
include<math.h> int main(){ int i;float sum=0.0,temp=0.0;for (i = 1; i <= 100; i++){ temp = pow(-1, i + 1);sum = sum + temp * 1 \/ i;} printf("sum is %f\\n", sum);system("pause");return 0;} 运行效果:...

求解1–1\/2+1\/3-1\/4+……+1\/99-1\/100 用C语言如何编写 别说叫我看书...
int i;\/\/i表示的是分母,比如1\/5,下面的5 float sum = 0;\/\/这个用来计算和 for (i = 1; i < 100; i++)\/\/分母下面的数是1到100,所以我们从1到100一一计算出来 { if (i % 2 == 0)\/\/你可以观察一下那个表达式,如果分母为偶数的话是减去,\/\/分母是奇数的话是加上。使用i%2,...

C语言程序"计算1-1\/2+1\/3-1\/4+…+1\/99-1\/100+…,直到最后一项的绝对值小...
\/\/已测试#include <stdio.h>int main(void){ float fm = 1,sum = 0; for(;fm < 10000;fm++) { if((int)fm%2) sum += 1\/fm; else sum -= 1\/fm; } printf("The result is : %f\\n",sum); return 0;} ...

用c语言求1-1\/2+1\/3-1\/4+1\/5……+1\/99-1\/100
include"stdio.h"main(){ int i,flag=1;double sum=0.0;for(i=1;i<=100;i++){ sum=sum+(1.0\/i)*flag; \/*由于i是整数,所以取1.0来除以i以保证相除后结果是实型*\/ flag=-flag;} printf("1-1\/2+1\/3-1\/4+1\/5……+1\/99-1\/100=%f\\n",sum);} ...

用c语言写出求1-1\/2+1\/3-1\/4+……+1\/99-1\/100的程序代码。帮忙啊。我...
void main(){ float result = 0;int i = 0;float sign = 1;for(i = 0; i< 100; i++){ if( i % 2 == 0)sign = 1;else sign = -1;result = result + sign \/ (i + 1);printf("result = %f\\n", result);} return;} ...

怎么用C语言编程求:1-1\/2+1\/3-1\/4+...+1\/99-1\/100
include <stdio.h>int main(int argc,char *argv[]){ int i; double sum; for(sum=0.0,i=1;i<101;i++) sum += i&1 ? 1.0\/i : -1.0\/i; printf("The result is %g\\n",sum); return 0;}

c语言 编写一个程序 1-1\/2+1\/3-1\/4+1\/5??-1\/99+1\/100用while语句!
include<stdio.h> intmain(){ intfm=0;floatsum=0.0;for(fm=1;fm<=100;fm++){ if(fm%2!=0){ sum+=1.0\/fm;} else { sum-=1.0\/fm;} } printf("sum=%f\\n",sum);return0;}

C语言编程计算: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;} ...

相似回答