可能要考虑这样的情况
12.123000 和12.12300000,他们也是相等的.但我的处理就是错误的.
看看先把后面的0取消掉,如果小数点的位置,长度相同再换成数组比较,能不能过...
12.123000 和12.12300000,他们也是相等的.但我的处理就是错误的.
看看先把后面的0取消掉,如果小数点的位置,长度相同再换成数组比较,能不能过...
倚天照海花无数,流水高山心自知。
我过了,除了要想到方法解决LZ说的问题,还要注意开的数组要大,要1000000,
下面是我的程序:
注释不写了,应该好理解,就是先找".",有的话再字符串尾到"."之间,不为0就跳出,加"\0",否则就把"."的位子用"\0"覆盖,
最后再用strcmp比较就可以了,
#include<stdio.h>
#include<string.h>
void modify(char *a)
{long i,j;
for(i=0;i<strlen(a);i++)
if(a[i]=='.') break;
if(i<strlen(a))
{
if(i==strlen(a)-1) a[i]='\0';
else
{
for(j=strlen(a)-1;j>i;j--)
if(a[j]!='0') break;
if(j==i) a[j]='\0';
else a[j+1]='\0';
}
}
}
main()
{char a[1000000],b[1000000];
while(scanf("%s %s",a,b)!=EOF)
{
modify(a);
modify(b);
if(strcmp(a,b)==0) printf("YES\n");
else printf("NO\n");
}
}