杭电 2054

来源:互联网 发布:淘宝收货p图怎么弄 编辑:程序博客网 时间:2024/05/16 14:23

A == B ?

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 60869    Accepted Submission(s): 9458


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 22 23 34 3
 

Sample Output
NOYESYESNO
 

Author
8600 && xhd
 

Source
校庆杯Warm Up
 


这道题看清楚题 没有明确指明是整型数据 所以考虑的时候要将带小数偶的实型给考虑进去

又因为 3.0与3.00是一样的 所以说考虑的时候要想办法将小数点后面的无必要的零给删除

我的代码如下:

 

#include<stdio.h>
#include<string.h>
void f(char *a)//此处直接将指针指过来 不需要返回值 所以说不用int型数据
{
 int len,i;
 len=strlen(a)-1;
 for(i=len;i>=0;i--)
 {
  if(a[i]=='0')
  len--;//除去小数后面的无关紧要的零
  else
  break;
 }
 if(a[len]=='.')
 len--;//要是小数点后面全是零的话,连小数点一起除去
 a[len+1]='\0';//因为是字符串 所以后面要加上 结束符号
}
int main()
{
 char a[50000],b[50000];//字符型数组要定义的足够大,不然的话,依旧会wa
 while(~scanf("%s%s",a,b))
 {
  int len,i;
  len=strlen(a)-1;
  for(i=0;i<=len;i++)
  if(a[i]=='.')
  f(a);
  len=strlen(b);
  for(i=0;i<len;i++)
  {
   if(b[i]=='.')
   f(b);
  }
  if(strcmp(a,b))
  printf("NO\n");
  else
  printf("YES\n");
 }
 return 0;
}

0 0
原创粉丝点击