只能说你考虑多了,其实只要考虑
1.00100 1.001
1.0000 1
就行了,去掉后面的0;
#include
#include
#include
using namespace std;
char a[50000],b[50000];
void run(char *a){
int flg=0;
for(;*a;a++)
if(*a=='.') flg=1;
if(flg){
for(a--;*a=='0';a--);
if(*a=='.') *a=0;
*(a+1)=0;
}
}
int main(){
while(cin>>a>>b){
run(a),run(b),puts(strcmp(a,b)?"NO":"YES");
}
return 0;
}
代码已AC
先判定符号。如果存在的话。
去掉前导0,小数位最后面的0.
再比较这二个数。
你的数组最好放外面,开的太大,程序容易crash 。
注意下面的数据 。
+.0 0
-.50 -0.5