我有程序,正在使用g ++编译器。
#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 for you is" << final_price << endl;
return 0;
}
double getCal(double *par) {
double original_price;
double r;
cout << " enter the price" << endl;
cin >> original_price;
r= (par/100.00);
return original_price - (original_price*r);
}
我已经检查了cmath的引用,但是没有注意到可以代替运算符的除法函数.par和100.00都是double值,我应该改变什么?
par
不是双精度值,而是指向双精度值的指针。如果要除以(指向par
)的值,则必须编写
r = *par / 100.0;
但是,不需要通过指针传递,也许您最好将签名更改为
double getCal(double *par)
到
double getCal(double par) //(1)
除非您确实需要函数内部的引用。即使这样,您仍然应该远离指针并传递引用:
double getCal(double& par)
为了完整起见,我还提到了传递值的常用方法:
double getCal(const double& par)
但是,对于单个double值,此和(1)之间的差异很可能是可忽略的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句