程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 第十一屆“藍狐網絡杯”湖南省大學生計算機程序設計競賽 B,湖南省設計競賽

第十一屆“藍狐網絡杯”湖南省大學生計算機程序設計競賽 B,湖南省設計競賽

編輯:C++入門知識

第十一屆“藍狐網絡杯”湖南省大學生計算機程序設計競賽 B,湖南省設計競賽


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.0
0.00001 0.00000
0.0 0.000

Sample Output

Case 1: Smaller
Case 2: Bigger
Case 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;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved