用C++语言写1-1/4+1/7-1/10.......的前n项和,请问我那里写错了?为什么我的sum输出永远是1
#include<stdio.h>intmain(void){intn,i,sum=0,flag=1,item;printf("Entern");scanf("%d",&...
#include<stdio.h>
int main(void){
int n,i,sum=0,flag=1,item;
printf("Enter n");
scanf("%d",&n);
for(i=1;i<=n;i=i+3){
item=flag*(1/i);
sum=sum+item;
flag=-flag;
}
printf("sum=%d\n",sum);
return 0;
} 展开
int main(void){
int n,i,sum=0,flag=1,item;
printf("Enter n");
scanf("%d",&n);
for(i=1;i<=n;i=i+3){
item=flag*(1/i);
sum=sum+item;
flag=-flag;
}
printf("sum=%d\n",sum);
return 0;
} 展开
展开全部
item和sum不能设为int型,实数要是float。
#include<stdio.h>
int main(void){
int n,i,flag=1;
float item,sum=0;
printf("Enter n");
scanf("%d",&n);
for(i=1;i<=n;i=i+3){
item=flag*(1.0/i);
sum=sum+item;
flag=-flag;
}
printf("sum=%f\n",sum);
return 0;
}
#include<stdio.h>
int main(void){
int n,i,flag=1;
float item,sum=0;
printf("Enter n");
scanf("%d",&n);
for(i=1;i<=n;i=i+3){
item=flag*(1.0/i);
sum=sum+item;
flag=-flag;
}
printf("sum=%f\n",sum);
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为item你定义成了int类型
而item若有小数,则会自动地向下取整
于是tiem就一直都是0,除了刚好是1的情况
所以sum也就一直是1了
而item若有小数,则会自动地向下取整
于是tiem就一直都是0,除了刚好是1的情况
所以sum也就一直是1了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询