#16239: 給C的提醒


freedom501999@gmail.com (帥氣魔方生)

學校 : 不指定學校
編號 : 88611
來源 : [39.8.203.54]
最後登入時間 :
2019-05-30 22:56:25
a271. 彩色蘿蔔 -- 兔子 | From: [27.52.77.116] | 發表日期 : 2018-12-10 21:48

在讀取蘿蔔那一行的資料用 scanf() 

然後要用 getchar() 把緩衝區的 "換行字元\n" 讀出但不理它

最後用 gets() 把每天吃的蘿蔔存成字串

只要此字串的開頭是 "結束字元\0" 就直接輸出體重

getchar() 是避免 gets() 讀到還在緩衝區的 \n 就直接結束,所以很重要,記得加

 
#18799: Re:給C的提醒


kentsai1688@gmail.com (Ken Tsai)

學校 : 國立科學工業園區實驗高級中學
編號 : 99014
來源 : [118.163.197.175]
最後登入時間 :
2020-07-19 18:20:13
a271. 彩色蘿蔔 -- 兔子 | From: [123.240.239.161] | 發表日期 : 2019-08-06 21:09

在讀取蘿蔔那一行的資料用 scanf() 

然後要用 getchar() 把緩衝區的 "換行字元\n" 讀出但不理它

最後用 gets() 把每天吃的蘿蔔存成字串

只要此字串的開頭是 "結束字元\0" 就直接輸出體重

getchar() 是避免 gets() 讀到還在緩衝區的 \n 就直接結束,所以很重要,記得加



#include <iostream>

#include <string>

using namespace std;

int t,x,y,z,w,n,m,toxic=0,length;

string in;

inline int Eat(int radish)

{

    switch(radish)

    {

        case 0:

            return 0;

        case 1:

            return x;

        case 2:

            return y;

        case 3:

            return 0-z;

        case 4:

            toxic+=n;

            return 0-w;

    }

}

int main()

{

    ios_base::sync_with_stdio(false);

    cin>>t;

    for(int radish,i=0;t--;i=0,toxic=0)

    {

        cin>>x>>y>>z>>w>>n>>m;

        cin.ignore();

        getline(cin,in,'\n');

        length=in.length();

        while(i<length)

        {

            radish=in[i]-'0';

            if(m<=0) break;

            m-=toxic;

            if(m<=0) break;

            m+=Eat(radish);

            if(m<=0) break;

            i+=2;

        }

        if(m<=0) cout<<"bye~Rabbit"<<'\n';

        else cout<<m<<'g'<<'\n';

    }

    return 0;

}

 

//(0.1s, 328KB)

 
#18808: Re:給C的提醒


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
a271. 彩色蘿蔔 -- 兔子 | From: [49.158.83.43] | 發表日期 : 2019-08-06 21:25

 

請注意:您正在編寫「解題報告」,請勿直接貼出完整程式碼(將被隱藏),而是請說明解題思路、所需使用的演算法...等,讓不會寫的使用者可以從中學習獲得成長。

就算這裡不是解題報告的主樓,也請不要釋放出程式碼。感謝。

 

 
#19343: Re:給C的提醒


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50
a271. 彩色蘿蔔 -- 兔子 | From: [114.42.211.70] | 發表日期 : 2019-09-25 20:54

在讀取蘿蔔那一行的資料用 scanf() 

然後要用 getchar() 把緩衝區的 "換行字元\n" 讀出但不理它

最後用 gets() 把每天吃的蘿蔔存成字串

只要此字串的開頭是 "結束字元\0" 就直接輸出體重

getchar() 是避免 gets() 讀到還在緩衝區的 \n 就直接結束,所以很重要,記得加



#include

#include

using namespace std;

int t,x,y,z,w,n,m,toxic=0,length;

string in;

inline int Eat(int radish)

{

    switch(radish)

    {

        case 0:

            return 0;

        case 1:

            return x;

        case 2:

            return y;

        case 3:

            return 0-z;

        case 4:

            toxic+=n;

            return 0-w;

    }

}

int main()

{

    ios_base::sync_with_stdio(false);

    cin>>t;

    for(int radish,i=0;t--;i=0,toxic=0)

    {

        cin>>x>>y>>z>>w>>n>>m;

        cin.ignore();

        getline(cin,in,'\n');

        length=in.length();

        while(i<length)

        {

            radish=in[i]-'0';

            if(m<=0) break;

            m-=toxic;

            if(m<=0) break;

            m+=Eat(radish);

            if(m<=0) break;

            i+=2;

        }

        if(m<=0) cout<<"bye~Rabbit"<<'\n';

        else cout<<m<<'g'<<'\n';

    }

    return 0;

}

 

//(0.1s, 328KB)

人家在說C

你給C++的代碼是怎樣...?

 
ZeroJudge Forum