题目73
大数比较
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
给你两个很大的数,你能不能判断出他们两个数的大小呢?
比如123456789123456789要大于-123456
输入
每组测试数据占一行,输入两个不超过1000位的10进制整数a,b
数据保证输入的a,b没有前缀的0。
如果输入0 0表示输入结束。测试数据组数不超过10组
输出
如果a>b则输出“a>b”,如果a<b则输出“a<b”,如果相等则输出“a==b”。
样例输入
111111111111111111111111111 88888888888888888888
-1111111111111111111111111 22222222
0 0
样例输出
a>b
a<b
*/
1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char a1[100],a2[100]; 5 while(scanf("%s%s",a1,a2)&&(a1[0]!='0'||a2[0]!='0')){ 6 7 8 int b1[100],b2[100],i,len1,len2; 9 len1=strlen(a1); 10 len2=strlen(a2); 11 if(a1[0]=='-'&&a2[0]!='-') 12 13 printf("a<b "); 14 15 16 else if(a1[0]!='-'&&a2[0]=='-') 17 18 printf("a>b "); 19 else if(a1[0]!='-'&&a2[0]!='-') 20 { 21 if(len1>len2) 22 printf("a>b "); 23 else if(len1<len2) 24 printf("a<b "); 25 else if(len1==len2) 26 { 27 28 for(i=0;i<len1;i++) 29 { 30 31 if( (a1[i]-'0')>(a2[i]-'0')){ 32 printf("a>b "); break;} 33 if((a1[i]-'0')<(a2[i]-'0')){ 34 printf("a<b "); break;} 35 if(i==len1-1){ 36 printf("a==b "); 37 break;} 38 39 }}} 40 else if(a1[0]=='-'&&a2[0]=='-') 41 42 { 43 if(len1>len2) 44 printf("a<b "); 45 else if(len1<len2) 46 printf("a>b "); 47 else if(len1==len2) 48 { 49 50 for(i=0;i<len1;i++) 51 { 52 53 if( (a1[i]-'0')>(a2[i]-'0')){ 54 printf("a<b "); break;} 55 if((a1[i]-'0')<(a2[i]-'0')){ 56 printf("a>b "); break;} 57 if(i==len1-1){ 58 printf("a==b "); 59 break;} 60 61 }}} 62 } 63 return 0; 64 }