我的PAT-BASIC代码仓:https://github.com/617076674/PAT-BASIC
原题链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805274496319488
题目描述:
知识点:浮点数的比较
思路:按题述编程即可
注意点:
对于double类型的比较,不等用"=="来比较。就本题而言,由于精度是2位小数,对于(-0.01, 0.01)内的数据,都应该视为0.00。如果不处理这一点,将无法通过测试点2和测试点3。
C++代码:
#include<iostream>
#include<math.h>
using namespace std;
int main(){
double r1, p1, r2, p2;
cin >> r1 >> p1 >> r2 >> p2;
double r = r1 * r2;
double p = p1 + p2;
double a = r * cos(p);
double b = r * sin(p);
if(a < 0){
if(a > -0.01){
printf("0.00");
}else{
printf("-%.2lf", -a);
}
}else{
if(a < 0.01){
printf("0.00");
}else{
printf("%.2lf", a);
}
}
if(b < 0){
if(b > -0.01){
printf("+0.00i");
}else{
printf("-%.2lfi", -b);
}
}else{
if(b < 0.01){
printf("+0.00i");
}else{
printf("+%.2lfi", b);
}
}
}
C++解题报告: