item和sum不能设为int型,实数要是float。
#include
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都是0了
#include
int main(void){
int n,i,flag=1;
float sum=0,item;//或者用double
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你定义成了int类型
而item若有小数,则会自动地向下取整
于是tiem就一直都是0,除了刚好是1的情况
所以sum也就一直是1了