C语言程序 1-1/2+1/3-1/4+...+1/99-1/100
#include<stdio.h>#include<math.h>voidmain(){doublesum;intn,m;printf("请输入n:");scanf("%...
#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);
}
怎么就不行-谢谢 展开
#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);
}
怎么就不行-谢谢 展开
6个回答
展开全部
你的输入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);
}
展开全部
#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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个每次都是负的啊 你得增加一个标志位 偶数是负的 奇数是正的 if(m%2==0)flag=-1:else flag=1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询