gpt4 book ai didi

代码看起来不错,但为什么它要求两次 E 并不断打印 0.000?

转载 作者:行者123 更新时间:2023-11-30 20:09:23 25 4
gpt4 key购买 nike

我正在尝试调试我的作业程序。它对我来说看起来不错,但似乎无法正常工作。

这是任务:{Xn} = |COSn|/n ---->0是一个极限为“0”的算术序列。目标是计算所有序列的元素总和,直到第 n 个元素的绝对值变为 < then E(取自用户)。

这里是代码:

/* {Xn} = |COSn|/n - is a sequence programm works with*/

#include <math.h>
#include <stdio.h>

/* adding libraries here*/

float calele(float a) // A function to CALculate an ELEment
{
float b;
b = fabs( cos(a) )/a; // {Xn} = |COSn|/n
return b;
}

float seqsum(float E) //function, that counts sum.
//"calele" function is used
{
int n=1;
float sum = 0.0;
while( fabs(calele(n)) >= E) //if absolute value of counted element is still >= then user's E
{
sum = sum+calele(n); // then we add it so sum
n = n+1;
}
return sum; // as soon as counted element becomes < then user's E, programm stops and returns the sum
}

int main(void)
{
float E = 0; // Declaring E's variable
float sum = 0; // sum of sequence's elements

printf("Enter sequense's lower limit: "); // Prompting the user for the E
scanf("%f", &E); // Getting E from the user
sum = seqsum(E); // counting sum via function above
printf("The sum of sequence's elements above %f is: %f\n\n", &E, &sum);

return 0;
}

问题:

  1. 为什么不能正常工作?
  2. 为什么它不断要求第二个 E?
  3. 为什么无论如何它都会打印出零?

最佳答案

我无法重现“为什么它不断要求第二个 E”的事情。然而,“为什么无论如何它都会打印零”是因为您将 &E&sum 传递给 printf;即,您在需要浮点值的地方传递指针,从而产生未定义的行为。相反,写

printf("The sum of sequence's elements above %f is: %f\n\n", E, sum);

关于代码看起来不错,但为什么它要求两次 E 并不断打印 0.000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52745743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com