代码改变世界

大数运算之比较大小

2015-04-23 21:13  Say_ALin  阅读(304)  评论(0编辑  收藏  举报

给你两个很大的数,判断大小。

#include <stdio.h>
#include <string.h>

int main()
{
    char s1[1024], s2[1024];
    while(scanf("%s %s", s1, s2) != EOF)
    {
        if(s1[0] == '0' && s2[0] == '0') break;
        else
        {
                // 两个数都是负数
                if(s1[0] == '-' && s2[0] == '-')
                {
                    if(strlen(s1) > strlen(s2)) printf("a<b\n");
                    else if(strlen(s1) < strlen(s2)) printf("a>b\n");
                    else if(strcmp(s1, s2) > 0) printf("a<b\n");
                    else if(strcmp(s1, s2) < 0) printf("a>b\n");
                    else printf("a==b\n");
                }
                // 两正数
                else if(s1[0] != '-' && s2[0] != '-')
                {
                    if(strlen(s1) > strlen(s2)) printf("a>b\n");
                    else if(strlen(s1) < strlen(s2)) printf("a<b\n");
                    else if(strcmp(s1, s2) > 0) printf("a>b\n");
                    else if(strcmp(s1, s2) < 0) printf("a<b\n");
                    else printf("a==b\n");
                }
                // 一负一正
                else if(s1[0] == '-' && s2[0] != '-') printf("a<b\n");
                // 一正一负
                else printf("a>b\n");

        }

    }
    return 0;
}