• 比大小


    问题B:比大小

    时间限制: 3 Sec  内存限制: 128 MB
    提交: 6  解决: 6
    [提交][状态][讨论版]

    题目描述

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

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



    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char a[1000],b[1000];
        while(scanf("%s%s",a,b)!=EOF)
        {
            int lena,lenb;
            int i,j;
            lena=strlen(a);
            lenb=strlen(b);
            if((lena==1&&a[0]=='0')&&(lenb==1&&b[0]=='0'))
                return 0;              //while(scanf("%s%s",a,b)!=EOF&&a[0]!='0'&&b[0]!='0')
            if(a[0]!='-'&&b[0]!='-')      //两个数同为正
            {
                if(lena>lenb)
                    printf("a>b
    ");
                else if(lena<lenb)
                    printf("a<b
    ");
                else 
                {
                    for(i=0;i<lena;i++)
                    {
                        if(a[i]>b[i])
                        {
                            printf("a>b
    ");
                            break;
                        }
                        else if(a[i]<b[i])
                        {
                            printf("a<b
    ");
                            break;
                        }
                        else {                  //注意判断等号
                        if(i==lena-1)
                            printf("a==b
    ");   //if语句的位置
                        }
                    }
                }
            }
            else if(a[0]=='-'&&b[0]!='-')   //两个数正负不同
                printf("a<b
    ");
            else if(a[0]!='-'&&b[0]=='-')
                printf("a>b
    ");
            else                            //两个数同为负
            {                                
                if(lena>lenb)
                    printf("a<b
    ");
                else if(lena<lenb)
                    printf("a>b
    ");
                else 
                {
                    for(i=0;i<lena;i++)
                    {
                        if(a[i]>b[i])
                        {
                            printf("a<b
    ");
                            break;
                        }
                        else if(a[i]<b[i])
                        {
                            printf("a>b
    ");
                            break;
                        }
                        else continue;
                        if(i==lena-1)
                            printf("a=b
    ");
                    }
                }
            }
        }
        return 0;
    }
     
  • 相关阅读:
    链接和作用域2 C++快速入门43
    位运算符
    代码编辑器和代码浏览器
    关系运算符
    delphi教程 | 第一个程序
    代码编辑器和代码浏览器
    链接和作用域2 C++快速入门43
    delphi教程 | 第一个程序
    位运算符
    [原创 js] 点击即可修改内容函数
  • 原文地址:https://www.cnblogs.com/great-xxr/p/5780927.html
Copyright © 2020-2023  润新知