C 需要使用数组计算级数
我有以下任务: 计算C 需要使用数组计算级数,c,arrays,C,Arrays,我有以下任务: 计算x1+x2+..+x20,如果序列x1,x2。。。xn被授予以下规则:x1=1,x2=0.3,x(i)=(i+1)*x(i-2),i=3,4.. 有人能帮忙完成这个任务吗?我不知道如何开始写进步。。。 我试着写下: int main() { int i; double X[20]; for (i=3; i<=19; i++){ X[i]=(i+1)*X[i-2]; } for (i=0; i<=19; i+
x1+x2+..+x20,如果序列x1,x2。。。xn
被授予以下规则:x1=1,x2=0.3,x(i)=(i+1)*x(i-2),i=3,4..
有人能帮忙完成这个任务吗?我不知道如何开始写进步。。。
我试着写下:
int main()
{
int i;
double X[20];
for (i=3; i<=19; i++){
X[i]=(i+1)*X[i-2];
}
for (i=0; i<=19; i++)
printf("%7d%13d\n", i, X[i]);
system ("pause");
}
intmain()
{
int i;
双X[20];
对于(i=3;i您的解决方案经过一些修改后几乎是正确的,请尝试以下方法:
int main(void) {
int i;
double result = 1.3;
double X[20];
X[0] = 1;
X[1] = 0.3;
for (i=2; i<=19; i++){
X[i]=(i+2)*X[i-2];
result += X[i];
}
printf("%f", result);
system ("pause");
return 0;
}
int main(无效){
int i;
双结果=1.3;
双X[20];
X[0]=1;
X[1]=0.3;
对于(i=2;i让我们看看您当前的代码:
int main()
{
int i;
double X[20];
for (i=3; i<=19; i++){
X[i]=(i+1)*X[i-2];
}
for (i=0; i<=19; i++)
printf("%7d%13d\n", i, X[i]);
system ("pause");
}
现在,对i=1,…,20求和xi
。然后,您的代码如下所示:
int main()
{
double X[20];
// First two elements of your serie.
X[0] = 1;
printf("%7d%13f\n", 1, X[0]);
X[1] = 0.3;
double result = X[0] + X[1];
printf("%7d%13f\n", 2, X[1]);
// Third element to the 20th element of your serie.
for (int i=2; i<=19; i++){
X[i]=(i+2)*X[i-2];
printf("%7d%13f\n", i+1, X[i]);
result += X[i];
}
printf("\nSum of xi = %f", result);
system ("pause");
return 0;
}
intmain()
{
双X[20];
//你职业生涯的前两个要素。
X[0]=1;
printf(“%7d%13f\n”,1,X[0]);
X[1]=0.3;
双结果=X[0]+X[1];
printf(“%7d%13f\n”,2,X[1]);
//第三个元素到第二十个元素。
对于(int i=2;i作为提醒,您需要:x1=1,x2=0.3,x(i)=(i+1)*x(i-2)
对于[1,20]中的i
的每个值
计算和不需要存储所有内容,但这是您的选择。因此,从创建数组开始:
double X[21]; // 21 because you start from 1 and not 0.
然后初始化前2个值:
X[1] = 1;
X[2] = 0.3;
现在您可以使用您的循环(最多20个):
for(i=3;i您可能应该在循环之前为前两个赋值。此外,您的循环是否应该从2变为19而不是3?这看起来有点像C/C++而不是C。您有正确的标记吗?我通过以下方式赋值:X[1]=1;X[2]=0.3;
它的形式是否正确?我不太了解数组,也不知道如何使用数组。奇怪的是,您的代码工作不正确或我不理解。我得到了错误的答案。@SiRaZz我忘记了printf
中的%f
。它不是printf(“%7d%13d\n”,I,X[I]);
,而是printf(“%7d%13f\n”,i,X[i]);
因为X[i]
是双精度的,不是整数。谢谢你告诉我。现在应该可以了。
X[1] = 1;
X[2] = 0.3;
for (i=3; i<=20; i++){
X[i]=(i+1)*X[i-2];
}
double sum = X[1] + X[2];
for (i=3; i<=20; i++){
X[i]=(i+1)*X[i-2];
sum += X[i];
}