c++ - error: invalid operands of types ‘double*’ and ‘double’ to binary ‘operator/’ -


i have program , using g++ compiler.

#include <iostream> #include <math.h> using namespace std;  double getcal(double *par);  int main() {     double final_price;     double discount;     discount = 12;      final_price = getcal(&discount);     cout << "final price is" << final_price << endl;      return 0; }  double getcal(double *par) {     double original_price;     double r;      cout << " enter price" << endl;     cin >> original_price;      r= (par/100.00);     return original_price - (original_price*r); } 

i have checked reference cmath haven't noticed division function replace operator.both par , 100.00 doubles.what should change?

par not double pointer double. if want divide value (pointed par) have write

r = *par / 100.0; 

however, there no need pass pointer , maybe should better change signature

double getcal(double *par) 

to

double getcal(double par) //(1) 

unless need reference inside function. , then, still should stay away pointers , pass reference:

double getcal(double& par) 

just sake of completeness mention common way pass-by-value:

double getcal(const double& par) 

however, single double value difference between , (1) negligible.


Comments