要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和,求改错

#include<stdio.h>intcrisscross(intn){intf1;if(n==1)f1=1;elsef1=crisscross(n-1)+1;if(n... #include <stdio.h>
int crisscross(int n)
{
int f1;
if(n==1)
f1=1;
else
f1=crisscross(n-1)+1;
if(n%2==0)
f1=-f1;
return f1;
}
int interlock(int n)
{
int f2;
if(n==1)
f2=1;
else
f2=interlock(n-1)+2;
return f2;
}
int main()
{
int N,i,n;
float sum;
scanf("%d",&N);
for(i=1;i<=N;i++)
sum+=crisscross(n)/interlock(n);
printf("%.3f\n",sum);
return 0;
}

输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留3位小数。
输入样例:5
输出样例:0.917
展开
 我来答
不愿相离
2014-12-31 · TA获得超过440个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:490万
展开全部
#include <stdio.h>
int crisscross(int n)
{
if(n%2==0)
return -n;
else
return n;
}
int interlock(int n)
{
return n*2-1;
}
int main()
{
int N,i,n;
float sum=1;
scanf("%d",&N);
for(i=2;i<=N;i++)
sum+=(float)crisscross(i)/interlock(i);
printf("%.3f\n",sum);
return 0;
}

 

Chandler4
2014-12-31 · TA获得超过405个赞
知道小有建树答主
回答量:1058
采纳率:0%
帮助的人:761万
展开全部
#include <stdio.h>

//这两个函数完全没必要用递归,即使用,在这里面变号也会导致错误
int crisscross(int n)
{

if(n==1)
return 1;
else
return crisscross(n-1)+1;
}
int interlock(int n)
{

if(n==1)
return 1;
else
return interlock(n-1)+2;
}
int main()
{
int N,i,n;
float sum = 0.0;
scanf("%d",&N);
for(i=1;i<=N;i++)
if(i % 2 == 1)
{
    //这里正常应该写成这样既可
    //sum+=((float)i)/(2*i-1);
sum+=((float)crisscross(i))/interlock(i);
}else
{
sum-=((float)crisscross(i))/interlock(i);
}
printf("%.3f\n",sum);
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KummerWu
2014-12-31 · TA获得超过694个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:418万
展开全部
写得太复杂了,这样既可。
int main()
{
    int N,i,sign=-1;
    float sum = 0;
    scanf("%d",&N);
    for(i = 1;i<=N;i++)
    {
        sum += (sign*=-1)*((float)i)/((float)(2*i-1));
    }
    printf("%.3f\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曲文76
2019-04-26 · TA获得超过407个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:53.7万
展开全部
lz你好,以下是我编译的程序,请你看一下:
#include<stdio.h>
int main()
{
int i,n;
double m,f;
m=0.0;
f=1.0;
n>0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
m+=(f*i)/(2*i-1);
f*=-1;
}
printf("%.3lf\n",m);
return 0;
}
以上程序在我的作业中显示编译正确,希望对你有帮助!
希望你能够采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友00e1e87
2017-12-03
知道答主
回答量:2
采纳率:0%
帮助的人:1814
展开全部
#include<stdio.h>
int main()
{
int i,n;
double m,f;
m=0.0;
f=1.0;
n>0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
m+=(f*i)/(2*i-1);
f*=-1;
}
printf("%.3lf\n",m);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式