问题 B: 比大小

时间:2022-06-04 09:04:46

题目描述

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

比如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
问题 B: 比大小问题 B: 比大小
 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int main( ) {
 5     char a[1001], b[1001];
 6     while(scanf("%s%s", a, b) != EOF) {
 7         if(a[0] == '0' && b[0] == '0')
 8             break;
 9         if(a[0] == '-' && b[0] != '-')
10             printf("a<b\n");
11         else if(a[0] != '-' && b[0] == '-')
12             printf("a>b\n");
13         else {
14             int x = strlen(a);
15             int y = strlen(b);
16             if(x>y) {
17                 if(a[0] != '-' && b[0] != '-')
18                     printf("a>b\n");
19                 if(a[0] == '-' && b[0] == '-')
20                     printf("a<b\n");
21             }
22             if(x=y) {
23                 int d = 0;
24                 d = strcmp(a, b);
25                 if(d = 0)
26                     printf("a==b\n");
27                 else if(a[0] != '-' && b[0] != '-') {
28                     if(d > 0)
29                         printf("a>b\n");
30                     if(d < 0)
31                         printf("a<b\n");
32                 }
33                 else if(a[0] == '-' && b[0] == '-') {
34                     if(d > 0)
35                         printf("a<b\n");
36                     if(d < 0)
37                         printf("a>b\n");
38                 }
39             }
40         }
41     }
42     return 0;
43 }
View Code