做不出来踢协会!!!

来源:互联网 发布:淘宝图片如何ps 编辑:程序博客网 时间:2024/06/10 05:26

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

题目描述
这是今天最水的一道题,如果没写出来的,呵呵,踢协会。

给你两个整数a和b。输出较大的数,若两个数相等输出任一个都可以。这么水啊。。。

输入
输入有多组测试数据。每组数据有a和b两个整数。

小提示:数据保证不会有前导0。

输出

输出最后结果。

样例输入
0 0
样例输出
0

这道题要考虑大数,还要考虑有负数的情况,第一次看到这道题就直接让他们比了,欠考虑。。。

我的代码

#include<cstdio>#include<cstring>#define maxx 100000int main(){    char a[maxx],b[maxx],c[maxx];    int len1,len2,i,j;    while(~scanf("%s",&a))    {        int flag=0;        getchar();        scanf("%s",&b);        len1=strlen(a);        len2=strlen(b);        memset(c,0,sizeof(c));        if(a[0]=='-'&&b[0]!='-')        printf("%s",b);        else if(a[0]!='-'&&b[0]=='-')        printf("%s",a);        else if(a[0]=='-'&&b[0]=='-')        {            if(len1>len2)                printf("%s",b);            else if(len2>len1)                printf("%s",a);            else if(len1==len2)            {                for(i=0;i<len1;i++)                {                    if(a[i]>b[i])                    {                        for(j=0;j<len1;j++)                            c[j]=b[j];                        break;                    }                       else if(a[i]<b[i])                    {                        for(j=0;j<len2;j++)                            c[j]=a[j];                        break;                    }                    else if(a[i]==b[i])                        flag++;                }                if(flag==len1)                    for(i=0;i<len1;i++)                        printf("%c",a[i]);                else                    for(i=0;i<len1;i++)                        printf("%c",c[i]);            }                   }        else if(a[0]!='-'&&b[0]!='-')        {            if(len1>len2)                for(i=0;i<len1;i++)                    printf("%c",a[i]);            else if(len2>len1)                for(i=0;i<len2;i++)                    printf("%c",b[i]);            else if(len1==len2)            {                for(i=0;i<len1;i++)                {                    if(a[i]>b[i])                    {                        for(j=0;j<len1;j++)                            c[j]=a[j];                        break;                    }                       else if(a[i]<b[i])                    {                        for(j=0;j<len2;j++)                            c[j]=b[j];                        break;                    }                    else if(a[i]==b[i])                        flag++;                }                if(flag==len1)                    for(i=0;i<len1;i++)                        printf("%c",a[i]);                else                    for(i=0;i<len1;i++)                        printf("%c",c[i]);            }                               }        printf("\n");    }    return 0;}

大神的,看完真心觉得神奇,用strcmp函数竟然这么方便

#include<cstdio>#include<cstring>#define maxx 1000int main(){    char a[maxx],b[maxx];    int len1,len2;    while(~scanf("%s",&a))    {        getchar();        scanf("%s",&b);        len1=strlen(a);        len2=strlen(b);        if(a[0]=='-'&&b[0]!='-')            printf("%s\n",b);        else if(a[0]!='-'&&b[0]=='-')            printf("%s\n",a);        else if(a[0]=='-'&&b[0]=='-')        {            if(len1==len2)                printf("%s\n",strcmp(a,b)>0?b:a);//写成相反的,注意            else                printf("%s\n",len1>len2?b:a);        }        else if(a[0]!='-'&&b[0]!='-')        {            if(len1==len2)                printf("%s\n",strcmp(a,b)>0?a:b);            else                printf("%s\n",len1>len2?a:b);        }           }    return 0;}
0 0