HDU_A == B ?
2015-04-25 22:33 HaodongGUO 阅读(211) 评论(0) 编辑 收藏 举报1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 char a[100024],b[100024],c[100024],d[100024]; 5 int main() 6 { 7 8 //memset(c,0,sizeof(c)); 9 //memset(d,0,sizeof(d)); 10 while(scanf("%s%s",a,b)!=EOF) 11 { 12 int j=0; 13 while(a[j]=='0')//如果输入的数前几位为0,则 14 { 15 j++; 16 } 17 int k=j; 18 while(a[j]) 19 { 20 c[j-k]=a[j]; 21 j++; 22 } 23 j=0;//对a数组删除前面输入的零,e.g00001==1 24 while(b[j]=='0') 25 { 26 j++; 27 } 28 k=j; 29 while(b[j]) 30 { 31 d[j-k]=b[j]; 32 j++; 33 }//对b数组删除前面输入的零 34 j=0; 35 if(strchr(c,'.'))//字符串判断函数,如果c字符串中含有'.'则返回'.'的位置指针,否则返回NULL 36 {//说明strchr返回值类型是指针,作用是判断某字符串中是否存在某个字符 37 //并且在if语句中null和0的作用是等价的 38 while(c[j]) 39 { 40 j++; 41 } 42 j--; 43 while(c[j]=='0') 44 { 45 c[j]='\0'; 46 j--; 47 }//删除小数点后面的零,e.g 123.000=123.00000000 48 if(c[j]=='.') 49 c[j]='\0';//删除小数点,e.g 123.0000=123 50 } 51 j=0; 52 if(strchr(d,'.')) 53 { 54 while(d[j]) 55 { 56 j++; 57 } 58 j--; 59 while(d[j]=='0')//去掉末尾的零 60 { 61 d[j]='\0'; 62 j--; 63 } 64 if(d[j]=='.') 65 d[j]='\0';//将.号划掉 66 }//类似以上处理 67 if(strlen(c)!=strlen(d)) 68 printf("NO\n");//判断长度是否相等 69 else//比较 70 { 71 int i=0,t=0; 72 while(c[i]) 73 { 74 if(c[i]!=d[i])//如果出现两个字符出现不相等的情况,则做个标记 75 { 76 t++; 77 break; 78 } 79 i++; 80 } 81 if(t==0) 82 { 83 printf("YES\n"); 84 } 85 else 86 { 87 printf("NO\n"); 88 } 89 } 90 memset(a,0,sizeof(a)); 91 memset(b,0,sizeof(b)); 92 memset(c,0,sizeof(c)); 93 memset(d,0,sizeof(d)); 94 } 95 //system("pause"); 96 return 0; 97 }
22:28:28 2015-04-25