polynom

i don't know what's wrong with my code.
it is supposed to calculate a polynome but the result it's always 0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  #include <iostream>
#include <vector>

using namespace std;

double power(double a, unsigned int n) {
   double res = 0.;
   for (unsigned int i = 0; i<n; i++)
     res = res*a;
   return res;
}

double evalpoly(vector<double> pol, double x) {
   double res = 0.;
   for (unsigned int i = 1; i <= pol.size(); i++)
     res = res + pol[i]*power(x, i);
   return res;
}

int main() {
   vector<double> pol = {1.5, 2.5, 2.5, 4.0};
   vector<double> vals = {0, 1, 1.5, 2};
   for (unsigned int i = 0; i < vals.size(); i++)
     cout << "P(" << vals[i] << ") = " << evalpoly(pol, vals[i]) << endl;
   return 0;
}
the result it's always 0

look at lines 7 and 9. What happens when multiplying by zero?

At line 15
for (unsigned int i = 1; i <= pol.size(); i++)
the loop skips the first element of pol, and then tries to access an out of range element one position past the end of the vector.


Topic archived. No new replies allowed.