代碼一(答案錯誤)
#include <iostream>
using namespace std;
int main()
{
int a,b,x,y;
double sum;
while(cin>>a>>b>>x>>y){
sum=(double)x*x/a*a+(double)y*y/b*b;
if(sum>1)cout<<"out ellipse"<<endl;
else if(sum<1) cout<<"in ellipse"<<endl;
}
return 0;
}
代碼二(答案正確)
優化:強制轉換可以換成乘1.0
錯誤點:1.0xx/a/a 連除a,不是/a*a,或者加上括號
#include <iostream>
using namespace std;
int main()
{
int a,b,x,y;
double sum;
while(cin>>a>>b>>x>>y){
sum=1.0*x*x/a/a+1.0*y*y/b/b;
if(sum>1)cout<<"out ellipse"<<endl;
else if(sum<1) cout<<"in ellipse"<<endl;
}
return 0;
}