码迷,mamicode.com
首页 > 其他好文 > 详细

ACM-比大小

时间:2015-05-26 09:20:04      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

描述

给你两个很大的数,你能不能判断出他们两个数的大小呢?

比如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

代码:

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.else
12.{
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.else
30.{
31.if(b[0] != ‘-‘)
32.return 2;
33.else
34.{
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.}


ACM-比大小

标签:

原文地址:http://blog.csdn.net/u012701023/article/details/45998681

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!