您的位置:首页 > 其它

hdu2054 判断俩数是否相等

2017-01-06 23:30 225 查看

ac代码如下

此题判断俩数是否相等,倒不如说判断俩数一样(无意义的零不算哈)因为我们知道计算机判断俩整数相等的时候可以直接比较,但是浮点数比较相等是让他们差的绝对值小于10的-6次方;因此我们要判断俩数“真正”相等,必须借用字符串逐个比较来实现。

#include <stdio.h>

#include <stdlib.h>

#include<string.h>

void com(char s[])//定义一个函数,把输入字符串中无意义的零去掉。  特别注意如果小数点后所有零都无意义,那么我们必须把小数点去掉。

{

        int len,p=0,i;

        len=strlen(s);

        for(i=0;i<len;i++)

        {

                if(s[i]=='.')

                {

                        p=1;

                        break;

                }

        }

        if(p)

        {

        for(i=len-1;i>=0;i--)

        {

                if(s[i]=='0')

                {

                        s[i]='\0';

                }

                else break;

                len--;

        }

        if(s[len-1]=='.') s[len-1]='\0';

        }

}

int main()

{

        char a[1000000],b[1000000];//这道题没说明长度,因为数组越界re了一次,说明这题的数据很长,尽可能把长度定义大一些。

        while(scanf("%s%s",a,b)!=EOF)

        {

                com(a);

                com(b);

                if(strcmp(a,b))

                        printf("NO\n");

                else  printf("YES\n");

        }

        return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息