I want to ask question bout double *S ()
this function.
It's will wrong in Online Judge, But both work on VS or Dev, I don't know why.
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<iostream>
#include<cmath>
using namespace std;
class F {
private:
double a,r;
public:
F(double x, double y) {
a = x;
r = y;
}
double at (int x) {
return a * pow(r, x);
}
double *S () {
if (r >= 1 || r<= -1)
return nullptr;
double* x;
double b= double(a / (1 - r));
x = &b;
return x;
}
};
int main()
{
int j, k;
double a, r;
cin>>a>>r;
F f(a, r);
for(k = 0;k < 3;k ++)
printf("%.2lf\n", f.at(k));
double *s = f.S();
if(s == NULL)
printf("NULL\n");
else
printf("%.2lf\n", *s);
}
double *S () {
if (r >= 1 || r<= -1)
return nullptr;
double* z= new double(a / (1 - r));
return z;
}
It's will AC on OJ.
double *S () {
if (r >= 1 || r<= -1)
return nullptr;
double* x;
double b= double(a / (1 - r));
x = &b;
return x;
}
It's wrong on Oj.