菜鸟提问, 简单的C语言程序

来源:百度知道 编辑:UC知道 时间:2024/05/23 23:09:48
这个问题来源于今天对魔兽争霸里面防御公式的推导,现需要教精确求出其中一个常数.
已知了一组数据x,要求y.
关系式为 y=x/(1-x)*n ;(其中n是从1递增的自然数,即防御点数)
我自己编写了一个程序, 可总是报错.
#include<iostream.h>
int main()
{
long double x[17] = {0.06, 0.11, 0.15, 0.19, 0.23, 0.26, 0.30, 0.32, 0.35, 0.38, 0.40, 0.42, 0.44, 0.46, 0.47, 0.49, 0.50};

long double y[17];

for(int i=0; i<17; i++)
{
y[i] = x[i]/((1-x[i])*(i+1));
};

for(int j=0; j<17; j++)
{
cout<<y[j]<<endl;
};
return 0;
}
我已找不到错误, 希望高手帮我指点下, 不胜感激!

for循环后面的;不用加
我用C++ Builder 运行了,没有别的错啊,结果如下,如果不行的话,就把你的错误提示发出来吧,那样好解决点
还有,如果那个式子y=x/(1-x)*n;是求n次方的话(可能我想多了,哈哈) 你的表达就不对了,下面给个求n次方的函数,也可以用pow(x,y)求,包含头文件
#include<math.h>
程序和结果如下。

#include<stdio.h>
void main()
{int a,b;
long c;
int pow(int x,int y);
scanf("%d%d",&a,&b);
c=pow(a,b);
printf("%ld\n",c);
getch();
}
int pow(int x,int y)
{int i;
long mi=1;
for(i=1;i<=y;i++)
{mi=mi*x;
}
return mi;
}

0.0638298
0.0617978
0.0588235
0.058642
0.0597403
0.0585586
0.0612245
0.0588235
0.0598291
0.0612903
0.0606061
0.0603448
0.0604396
0.0608466
0.0591195
0.060049
0.0588235
请按任意键继续. . .

cout<<y[j]<<endl; 应为cout<<y[j]>>end;

把那个long 去掉

修改如下:

//------------------------------------------