给你两个很大的数,你能不能判断出他们两个数的大小呢?
比如123456789123456789要大于-123456
111111111111111111111111111 88888888888888888888 -1111111111111111111111111 22222222 0 0
a>b a<b
代码:
01.#include <stdio.h>02.#include <string.h>03.char
a[10010], b[10010];04.int
compare(char
a[], char b[])05.{06.int
len_a,len_b,tmp;07.if(a[0] !=
‘-‘)08.{09.if(b[0] ==
‘-‘)10.return
1;11.else12.{13.len_a =
strlen(a);14.len_b =
strlen(b);15.if(len_a > len_b)
return 1;16.if(len_a < len_b)
return 2;17.if(len_a == len_b)18.{19.for(tmp = 0; tmp < len_a; tmp++)20.{21.if(a[tmp] == b[tmp])
continue;22.if(a[tmp] > b[tmp])
return 1;23.else
return 2;24.}25.return
0;26.}27.}28.}29.else30.{31.if(b[0] !=
‘-‘)32.return
2;33.else34.{35.len_a =
strlen(a);36.len_b =
strlen(b);37.if(len_a < len_b)
return 1;38.if(len_a > len_b)
return 2;39.if(len_a == len_b)40.{41.for(tmp = 0; tmp < len_a; tmp++)42.{43.if(a[tmp] == b[tmp])
continue;44.if(a[tmp] < b[tmp])
return 1;45.else
return 2;46.}47.return
0;48.}49.}50.}51.}52.int
main()53.{54. 55.while(scanf("%s%s",
a, b)!=EOF)56.{57.if(a[0] ==
‘0‘ && b[0] == ‘0‘)58.break;59.switch(compare(a, b))60.{61.case
1:62.printf("a>b\n");63.break;64.case
2:65.printf("a<b\n");66.break;67.case
0:68.printf("a==b\n");69.break;70.}71.}72.return
0;73.}原文:http://blog.csdn.net/u012701023/article/details/45998681