请教下多项式求和为啥这里要while(n--)?

#include<stdio.h>
int main()
{
int n;
int a,i;
double sum;
scanf("%d",&n);
while(n--)
{
sum=0;
scanf("%d",&a);
for(i=1;i<=a;i++)
{
if(i%2==0)
{
sum=sum-1.0/i;
}
else{
sum=sum+1.0/i;
}
}
printf("%.2lf\n",sum);
}
return 0;}

桃花长相依
浏览 168回答 1
1回答

慕的地8271018

while函数在 C 中的用法:while(<条件>){需执行的代码;}根据原题,这里的n指的是测试实例的个数。而“n--”不妨理解为以下(伪)代码:int operation--(int x){int temp = x;x = x - 1;return temp;}因此while(n--)实际上与以下代码在几乎一切情况下等价:for(int i = 0; i != n; ++i)也就是循环执行n次的意思。这里用前者而非后者,是因为很多信息竞赛选手希望代码更加简单(但可读性不一定强)。但这种用法只在 n 不会被重复使用时才能被用。如果有多组循环要用到 n ,还是用后者吧。
打开App,查看更多内容
随时随地看视频慕课网APP