fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. float calculafx(float x2, float *f3, float *f4, int m) {
  6. float fx1 = 0;
  7. for (int j = 1; j <= m; j++) {
  8. fx1 += f3[j] * pow(x2, f4[j]);
  9. }
  10. return fx1;
  11. }
  12.  
  13. int main() {
  14. int n;
  15. float epsilon, fa, fb, x1, fxx1, a, b;
  16. printf("Digite o número de termos da função: \n");
  17. scanf("%d", &n);
  18. system("clear");
  19. float f1[n], f2[n];
  20. printf("Digite o epsilon: \n");
  21. scanf("%f", &epsilon);
  22. printf("Digite o primeiro valor do intervalo: \n");
  23. scanf("%f", &a);
  24. printf("Digite o segundo valor do intervalo: \n");
  25. scanf("%f", &b);
  26. system("clear");
  27. for(int i = 1; i <= n; i++) {
  28. printf("Digite o termo %d da função:\n", i);
  29. scanf("%f", &f1[i]);
  30. printf("Digite o grau do termo: \n");
  31. printf("Digite 0 se o termo for uma constante:\n");
  32. scanf("%f", &f2[i]);
  33. system("clear");
  34. }
  35.  
  36. do {
  37. x1 = (a + b) / 2;
  38. fxx1 = calculafx(x1, f1, f2, n);
  39. if (fxx1 * calculafx(a, f1, f2, n) < 0) {
  40. b = x1;
  41. } else {
  42. a = x1;
  43. }
  44. } while (abs(a - b) > epsilon);
  45. fa = calculafx(a, f1, f2, n);
  46. fb = calculafx(b, f1, f2, n);
  47. printf("f(a) é igual a %f e f(b) é igual a %f \n", fa,fb);
  48. }
Success #stdin #stdout #stderr 0s 9432KB
stdin
Standard input is empty
stdout
Digite o número de termos da função: 
Digite o epsilon: 
Digite o primeiro valor do intervalo: 
Digite o segundo valor do intervalo: 
f(a) é igual a 0.000000 e f(b) é igual a 0.000000 
stderr
TERM environment variable not set.
TERM environment variable not set.