Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input
each test case contains two numbers A and B.
Output
for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
2 2
3 3
4 3
Sample Output
NO
YES
YES
NO
ps:此题中对前导0没有做要求。
用到了两个常用函数:strstr()与strcmp():
strstr(“处理字符串”,”搜索字符串(字符)”),功能是在处理字符串中寻找搜索字符串,并返回搜索字符串,否则返回null。本题中用来判断是否为小数。很方便.
strcmp(字符串1,字符串2),功能是比较两个字符串是否相等,包括长度相等内容相同,返回0:说明相等,返回<0:说明串1<串2,返回>0说明串2<串1.
这两个函数在处理大数问题中经常用到。
#include <stdio.h>
#include <string.h>
char a[1000000],b[1000000];
void change(char s[])
{
int i,len=strlen(s);
if(strstr(s,".")!=NULL)//如果传入的是小数
{
for(i=len-1;s[i]=='0';i--)
{
s[i]='\0';
len--;
}
}
if(s[len-1]=='.')//注意输入的是10.和10
s[len-1]='\0';
}
int main()
{
while(scanf("%s%s",a,b)!=EOF)
{
change(a); //对类似4.00030000和4.003这种情况处理,消除多余的0;
change(b);
if(strcmp(a,b)==0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}