A == B?
时间限制: 1 Sec 内存限制: 16 MB提交: 404 解决: 28
[ 提交][ 状 态][ 讨 论 版]
题目描述
输入两个非负实数,如果二者相等就输出“
YES
”,反之则输出“
NO
”。
输入
第一行输入一个正整数
T(1 <= T <= 100)
,表示测试用例的个数;
在接下来的每组测试用例中,
依次输入两个非负实数
A
,
B( 0 <= A , B <= 3000);
输出
对于每组测试用例中的两个实数,
判断它们的大小关系,
如果二者相等就输出“
YES
”,反之则输出“
NO
”。
样例输入
41 2 2 2 3 3 4 3
样例输出
NO
YES
YES
NO
#include<stdio.h>
#include<string.h>
void front(char *s)//去前导0
{
int i,j=0,b=1,p=0,t=strlen(s);
for(i=0; i<t; i++)
{
if(s[i]!='0')
{
p=i;
for(; j<t-i;)
s[j++]=s[p++];
}
}
s[j]='\0';
}
void back(char *s)//去后导0
{
int i,j=0,t=strlen(s);
for(i=t-1; i>=0; i--)
if(s[i]=='0')
s[i]='\0';
else
return ;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int t,d,i,j,ii=0,jj=0;
char a[1000],b[1000],azhengshu[1000],bzhengshu[1000],axiaoshu[1000],bxiaoshu[1000];
scanf("%s %s",a,b);
t=strlen(a);
d=strlen(b);
for(i=0; i<t; i++)//求出a的整数部分
if(a[i]!='.')
azhengshu[ii++]=a[i];
else
break;
azhengshu[ii]='\0';
for(i=ii+1; i<t; i++)//求出a的小数部分
axiaoshu[jj++]=a[i];
axiaoshu[jj]='\0';
ii=jj=0;
for(i=0; i<d; i++)//求出b的整数部分
if(b[i]!='.')
bzhengshu[ii++]=b[i];
else
break;
bzhengshu[ii]='\0';
for(i=ii+1; i<d; i++)//求出b的小数部分
bxiaoshu[jj++]=b[i];
bxiaoshu[jj]='\0';
front(azhengshu);//去整数部分的前导0
front(bzhengshu);
back(axiaoshu);//去小数部分的后导0
back(bxiaoshu);
if(strcmp(azhengshu,bzhengshu)!=0)//开始比较
printf("NO\n");
else
if(strcmp(axiaoshu,bxiaoshu)!=0)
printf("NO\n");
else
printf("YES\n");
}
}