Comparison of Android versions

As an Android developer, itˇs really not easy to figure out a newer version of two kernels, because Android is updated so frequently and has many branches. Fortunately, Google identifies individual builds with a short build code, e.g. FRF85B. 

The first letter is the code name of the release family, e.g. F is Froyo. The code names are ordered alphabetically. The latest code name is K (KitKat). 
The second letter is a branch code that allows Google to identify the exact code branch that the build was made from, and R is by convention the primary release branch. 

The next letter and two digits are a date code. The letter counts quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two digits count days within the quarter, so F85 is June 24 2010. 

Finally, the last letter identifies individual versions related to the same date code, sequentially starting with A; A is actually implicit and usually omitted for brevity. 

Please develop a program to compare two Android build numbers.
InputThe first line is an integer n (1 <= n <= 2000), which indicates how many test cases need to process. 

Each test case consists of a single line containing two build numbers, separated by a space character.OutputFor each test case, output a single line starting with ¨Case #: 〃 (# means the number of the test case). Then, output the result of release comparison as follows: 

● Print "<" if the release of the first build number is lower than the second one; 
● Print "=" if the release of the first build number is same as he second one; 
 ● Print ">" if the release of the first build number is higher than the second one.

Continue to output the result of date comparison as follows: 
● Print "<" if the date of the first build number is lower than the second one; 
● Print "=" if the date of the first build number is same as he second one; 
● Print ">" if the date of the first build number is higher than the second one. 

If two builds are not in the same code branch, just compare the date code; if they are in the same code branch, compare the date code together with the individual version.Sample Input
2
FRF85B EPF21B
KTU84L KTU84M
Sample Output
Case 1: > >
Case 2: = <

题意:先比较第一个字母的大小,输出一个符号,比较第二个,要是相等就比较后4个,不相等就比较接下来的3个

#include <stdio.h>

#include <string.h>
int main()
{
    char s1[7],s2[7],b[5],d[5];
    int i,n,j;
    scanf("%d",&n);
    getchar();
    for(i=1;i<=n;i++)
    {
        memset(b,0,sizeof(b));
        memset(d,0,sizeof(d));
        memset(s1,0,sizeof(s1));
        memset(s2,0,sizeof(s2));
        scanf("%s %s",&s1,&s2);
        printf("Case %d: ",i);
        if(s1[0]==s2[0])
            printf("= ");
        else
        if(s1[0]>s2[0])
           printf("> ");
        else
        if(s1[0]<s2[0])
           printf("< ");
        int k=0;
        if(s1[1]!=s2[1])
        {
            for(j=2;j<=4;j++)
                b[k++]=s1[j];
            b[k]=0;
            k=0;
            for(j=2;j<=4;j++)
                d[k++]=s2[j];
            d[k]=0;
        }
        else
        {
            for(j=2;j<=5;j++)
                b[k++]=s1[j];
            b[k]=0;
            k=0;
            for(j=2;j<=5;j++)
                d[k++]=s2[j];
            d[k]=0;
        }
        if(strcmp(b,d)==0)
            printf("=");
        else
        if(strcmp(b,d)>0)
           printf(">");
        else
        if(strcmp(b,d)<0)
           printf("<");
        puts("");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zcy19990813/article/details/80145136