C语言编程:本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和

#include<stdio.h>intmain(){intn,i;doublesum;printf("请输入数字n:",n);scanf("%d",&n);for(i=... #include<stdio.h>
int main()
{
int n,i;
double sum;
printf("请输入数字n:",n);
scanf("%d",&n);

for(i=1;i<=n;i++)
{
if(i%2==0)
sum=sum-1/(3*i-2);
else
sum=sum+1/(3^i-2);
}
printf("sun=%.3f",&sum);
return 0;
}哪错了?
展开
 我来答
穆诗3210
2016-11-06 · TA获得超过690个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:52.7万
展开全部

错误的给你注释了,更正的写在下面,请认真看代码

#include<stdio.h>
int main()
{
int n,i;
//double sum;//sum没有初始化
double sum=0.0;//求和,置sum为0
//printf("请输入数字n:",n);//这句逗号后面的n是多余的,不参与输出
printf("请输入数字n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%2==0)
//sum=sum-1/(3*i-2);//1/(3*i-2),由于参与运算的全是整型,算出结果也将是整型,应当加入浮点型
sum=sum-1.0/(3*i-2);
else
//sum=sum+1/(3^i-2);//这里一个错误同上,一个错误是把*写成了^,天壤之别哦
sum=sum+1.0/(3*i-2);
}
//printf("sun=%.3f",&sum);//加&取地址,这样输出的是sum的地址值
printf("sum=%0.3f\n",sum);
return 0;
}

同时给你简化一下程序

#include<stdio.h>
#include <math.h> 
int main()
{
int n,i;
double sum=0.0;
printf("请输入数字n:");
scanf("%d",&n);
for(i=1;i<=n;i++)sum+=pow(-1,i+1)/(3*i-2.0);
printf("sum=%0.3f\n",sum);
return 0;
}

望采纳

wenjie1024
推荐于2017-11-23 · TA获得超过2381个赞
知道大有可为答主
回答量:1737
采纳率:72%
帮助的人:845万
展开全部

两个printf语句错了,一个多了,n   一个多了&

这是修改后的代码

#include<stdio.h>
int main(){
    int n,i,flag=1;
    double sum=0;
    printf("请输入数字n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++,flag*=-1){
        sum+=1.0/(3*i-2)*flag;}
    printf("sun=%.3f\n",sum);
    return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2016-11-06 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6411万
展开全部
  1. 把printf("请输入数字n:",n);中的,n删除。

  2. 把for(i=1;i<=n;i++)改成for(sum=0.0,i=1;i<=n;i++)。

  3. 把sum=sum-1/(3*i-2);改成sum=sum-1.0/(3*i-2);。

  4. 把sum=sum+1/(3^i-2);改成sum=sum+1.0/(3*i-2);。

  5. 把printf("sun=%.3f",&sum);改成printf("sum=%.3f",sum);。


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来夕桥婵
2020-03-02 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:2087万
展开全部
很容易编写!
先用数学方法计算出这个等差数列的求和公式:s(n)
=
3*n*n-2*n(n>=1);
然后输入n,直接用公式进行计算输出;
#include

#include

#include

#include

int main()
{
long long n;
while(scanf("%i64d", &n)==1, n)
{
printf("%i64d\n\n", 3*n*n-2*n);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8d8cdaf
2016-11-06 · TA获得超过2708个赞
知道小有建树答主
回答量:691
采纳率:82%
帮助的人:253万
展开全部
sum=sum-1/(3*i-2);//1/(3*i-2);这个得数一定为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式