第十一屆“藍狐網路杯”湖南省大學生電腦程式設計競賽 B - 大還是小? 字串水題

來源:互聯網
上載者:User

標籤:

B - 大還是小? Time Limit:5000MS     Memory Limit:65535KB     64bit IO Format:

Description

輸入兩個實數,判斷第一個數大,第二個數大還是一樣大。每個數的格式為: [整數部分].[小數部分]

簡單起見,整數部分和小數部分都保證非空,且整數部分不會有前置 0。不過,小數部分的最 後可以有 0,因此 0.0 和 0.000 是一樣大的。

Input

輸入包含不超過 20 組資料。每組資料包含一行,有兩個實數(格式如前所述)。每個實數都 包含不超過 100 個字元。

Output

對於每組資料,如果第一個數大,輸出"Bigger"。如果第一個數小,輸出"Smaller"。如果兩個 數相同,輸出"Same"。

Sample Input

1.0 2.00.00001 0.000000.0 0.000

Sample Output

Case 1: SmallerCase 2: BiggerCase 3: Same

    好吧.......因為隊裡刷題我是從前往後刷,所以這道水題先被我看見A了,題意全是中文也沒什麼可解釋的。數位位元是100字元,所以必須要用字串來處理了,小數點後面的自動補上0以方便最後判斷是否相同,然後小數點前面的誰位元多誰就大,位元一樣就從第一個數開始比較,一直比出結果為止。這題輸入的格式已經固定好了是“整數部分.小數部分"所以不用擔心出現一個沒有小數點的數,直接比較就可以了。

    下面代碼:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char a[105],b[105];int max(int a,int b){    return a>b?a:b;}int main(){    int len1,len2;    int i,j;    int k=0;    int d1,d2;    int t;    while(scanf("%s",a)!=EOF)    {        scanf("%s",b);        len1=strlen(a);        len2=strlen(b);        for(i=len1;i<102;i++)        {            a[i]=‘0‘;        }        for(i=len2;i<102;i++)        {            b[i]=‘0‘;        }        t=0;        k++;        d1=len1;        d2=len2;        cout<<"Case "<<k<<": ";        for(i=0;i<len1;i++)        {           if(a[i]==‘.‘)           {               d1=i;               break;           }        }        for(i=0;i<len2;i++)        {            if(b[i]==‘.‘)            {                d2=i;                break;            }        }        if(d1>d2)        {            cout<<"Bigger"<<endl;            t=2;        }        else if(d1<d2)        {            cout<<"Smaller"<<endl;            t=2;        }        else        {            for(i=0;i<max(len1,len2);i++)            {                if(a[i]>b[i])                {                    t=1;                    break;                }                else if(a[i]<b[i])                {                    t=-1;                    break;                }            }        }        if(t==0)            cout<<"Same"<<endl;        else if(t==1)            cout<<"Bigger"<<endl;        else if(t==-1)            cout<<"Smaller"<<endl;    }    return 0;}

 

第十一屆“藍狐網路杯”湖南省大學生電腦程式設計競賽 B - 大還是小? 字串水題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.