范例1:

while(npw(x,i)/ftr(i)>0.00001) {
  t+=npw(x,i)/ftr(i);
  i++;                    //normal increase i
}


要么

while(npw(x,i)/ftr(i)>0.00001)
  t+=npw(x,i++)/ftr(i++); //increase i inside function's parameters


示例2:(x是“浮点数”)

int n=(int)x;                     //normal cast
printf("x! = %.0lf\n",ftr(n));


要么

printf("x! = %.0lf\n",ftr((int)x)); //directly cast inside function parameters

最佳答案

t+=npw(x,i++)/ftr(i++);

由于未指定两个增量操作的执行顺序,因此可能无法执行您期望的操作。即您不知道哪个函数将获取递增的i,哪个函数将获取递增的i作为参数。

此外,无论先递增i哪个,它都会与前一段完全不同,在先前的代码中,i仅递增一次。

其他示例看起来正确。最后两段代码仅在语义上有所不同。

10-05 21:30