#37903: 複製貼上


yp11251273@yphs.tp.edu.tw (704-31張鈞勉)

學校 : 臺北市私立延平高級中學
編號 : 239174
來源 : [203.72.178.1]
最後登入時間 :
2024-06-18 17:44:30
a271. 彩色蘿蔔 -- 兔子 | From: [203.72.178.1] | 發表日期 : 2023-10-17 17:34

#include <stdio.h> #include <string.h> int main() { int N; scanf("%d", &N); for(int i=0;i<N;i++) { int x, y, z, w, n, m, poison=0; scanf("%d%d%d%d%d%d", &x, &y, &z, &w, &n, &m); /*讀取測資第一行的輸入*/ char c=getchar(); /*讀取測資第一行和第二行之間的回車鍵,避免在讀取每日吃到的蘿蔔種類時讀到*/ char carrot[1000]={}; /*注意這裡的測資數量較大,因此這裡的陣列大小也要令大一點,否則會出現記憶體區段錯誤,系統會呼叫abort()函式中斷程式執行*/ gets(carrot); /*讀取測資第二行的輸入,直接以字串形式整行連同空白讀進來*/ for(int j=0;j<strlen(carrot);j+=2) { /*因為剛剛有讀到空白,因此設定i+=2跳過空白項*/ m-=poison*n; /*早上進入中毒狀態,體重因中毒而減輕*/ if(m<=0) { /*判斷兔子是否因中毒狀態而死*/ printf("bye~Rabbit\n"); break; } switch(carrot[j]) { /*根據兔子每日吃的蘿蔔種類,對體重進行相對應的運算*/ case '0': /*沒吃蘿蔔*/ break; case '1': /*吃紅蘿蔔*/ m+=x; /*體重+x公斤*/ break; case '2': /*吃白蘿蔔*/ m+=y; /*體重+y公斤*/ break; case '3': /*吃黃蘿蔔*/ m-=z; /*體重-z公斤*/ break; case '4': /*吃黑蘿蔔*/ m-=w; /*體重-w公斤*/ poison++; /*隔天早上才進入中毒狀態,因此先註記起來但不用減少體重*/ break; } if(m<=0) { /*判斷兔子是否因吃到不好的蘿蔔後體重減輕而死*/ printf("bye~Rabbit\n"); break; } } if(m>0) printf("%dg\n", m); } return 0; }

 
ZeroJudge Forum