返回代码hdu 2054 A==B?

文章结束给大家来个程序员笑话:[M]

    

A == B ?

                                                                           Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

    

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
题意:给你两个数,判断是不是相称。

    

      刚看到这个题时,觉得这也太简略了,两个数相减,判断差是不是是0不就行了。于是很快写好代码,果断提交,Wrong Answer!顿时无语。后来听人说要用字符串,又写了一个代码还是WrongAnswer。原来是给的数多是小数且可能在末端还有无用的0,要把这些0去掉再比较。查了一些资料当前,终究把这个题搞定了,和大家分享一下我的代码:
#include<stdio.h>
#include<string.h>
char *change(char *s)
{
	int len=strlen(s);
	if(strchr(s,'.')!=NULL) /*如果有小数点*/
	{
		while(s[--len]=='0'); //去掉小数点后面的没用的0,从后往前往
      	if(s[len]=='.') /*小数点后全是0时执行此操作*/
			len--; /*把小数点去掉*/
		s[len+1]='\0'; /*保留有效的数*/
	}
	return s;
}
int main()
{
	char s1[14000],s2[14000];
	while(~scanf("%s %s",s1,s2))
	{
		if(!strcmp(change(s1),change(s2))) /*字符串比较,相称返回0*/
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}
注意:这个题不用斟酌前导0,即008这种情况不用斟酌。
strchr(s,'.')函数是判断在字符串s中是不是含有小数点,如果没有就返回空指针;有的话就返回指针位置,即地址。

文章结束给大家分享下程序员的一些笑话语录: 腾讯总舵主马化腾,有人曾经戏称如果在Z国选举总统,马化腾一定当选,因为只要QQ来一个弹窗”投马总,送Q币”即可。

--------------------------------- 原创文章 By
返回和代码
---------------------------------

原文地址:https://www.cnblogs.com/jiangu66/p/3112977.html