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;
}哪错了? 展开
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;
}哪错了? 展开
5个回答
展开全部
错误的给你注释了,更正的写在下面,请认真看代码
#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;
}
望采纳
展开全部
两个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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把printf("请输入数字n:",n);中的,n删除。
把for(i=1;i<=n;i++)改成for(sum=0.0,i=1;i<=n;i++)。
把sum=sum-1/(3*i-2);改成sum=sum-1.0/(3*i-2);。
把sum=sum+1/(3^i-2);改成sum=sum+1.0/(3*i-2);。
把printf("sun=%.3f",&sum);改成printf("sum=%.3f",sum);。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很容易编写!
先用数学方法计算出这个等差数列的求和公式: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;
}
先用数学方法计算出这个等差数列的求和公式: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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sum=sum-1/(3*i-2);//1/(3*i-2);这个得数一定为0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询