一道c语言题目,麻烦一下

2024-11-17 06:22:33
推荐回答(3个)
回答(1):

#include
void main() { int n; double x,c,t;
  printf("请给X赋值:"); scanf("%lf",&x); t=1; n=1; c=0;
  while ( t>=1e6 ) { c+=t; t=1; t/=x; t/=n; n++; }
  printf("结果是:"); printf("%lf\n",c);
}

回答(2):

你好,你的输出C是Int型,那肯定是错的,首先你得c就应该是double 或者float,你的for循环判断语句也是错的应该是1/pow(x,n)>pow(10,-6),最后应该是n++,你开始N就是0了你还怎么减,n++也是次方增加啊,怎么能减呢
#include
#include "math.h"
int main()
{
int n,x;
double c=0;
printf("请给X赋值:");
scanf("%d",&x);
for(n=0;(1/pow(x,n))>pow(10,-6);n++)
{
c=c+1/pow(x,n);
}
printf("结果是:");
printf("%lf",c);
system("pause");
}

回答(3):

1.总体思路是正确的。
2.pow的返回值是浮点数float。
3.建议你把c定义为浮点数试试,虽然int会被强制转换成float。
4.pow(x,n)要计算两次,效率不高,但不会影响结果。