1-1/2+1/3+1/4-1/5+1/6+1/7+1/8-1/9……1/n 用C语言写出代码 求大神指教
这个不是吧 这个不是1-1/2+1/3—1/4……
这是书上的答案 我觉得不对
追答sorry 我看错了。你书上的确实不对。我改了下。
#include
int main()
{
int n;
int step = 2;
int develop = 3;
double i;
double sum = 0.0;
printf("请输入 n: ");
scanf("%d", &n); //输入n
for(i = 1; i <= n; i++)
{
if((int)i%step == 0) //能被step整除时第i项就为负数
{
sum = sum + (-(1/i));
step = step + develop;
develop++;
continue;
}
sum = sum + 1/i;
}
printf("%f\n", sum);
return 0;
}
不好意思哈 太感谢你了~~~可是已经采纳了 只能感谢了
~~这个知道 想知道怎么用循环结构表示~
追答OK,只要你找到了规律那就容易了, 先把他们全部看做加法运算,带减号的就相当于乘以-1, 假如规律是第1.3.5.7.....个数前面是减号,只需要给他们乘以-1即可
追问不是的 是2 5 9 依次加2加3加4......我用C语言写不出来
追答比如for(int i=0;i<n;i++)
{ if(i%2!=0)
{
i=i*(-1);
}
sum+=i;
}
恩纳 这道题呢
追答OK,明白
你可以发现他们之间的差值是2.3.4.5.....利用这个就可以方便的找到哪一项应该乘以-1.
追问可是 我觉得我用for while 我写不出来 老师也说不会 就不用想了
追答可以写出来,你要相信自己,我给你提示,也就是你现在的任务只要确保第2.3.5.9....项可以乘以-1即可
追问…~~我都不信了 因为我都想两天了 C语言都开始学数组了~~
追答额,好吧,这样吧,你先学习新知识,这个先不要想了,有时间了你再问我我给你再提示,这个还是你自己动手写出来比较好
本回答被提问者采纳~~这个知道 想知道怎么用循环结构表示~