皮卡丘的夥伴, 二維陣列的加深理解

2021-08-14 22:03:19 字數 3286 閱讀 1028

寶可夢對戰是1對1的戰鬥,通過寶可夢學習到的招式進行攻擊,從而獲得勝利。每個招式都有自身的威力,招式的威力與造成的傷害成正比,也就是說招式威力越大,造成的傷害也越大。招式還附帶屬性,如果寶可夢使用的招式屬性與自身屬性相同,招式威力會提高50%;如果寶可夢使用的招式屬性克制對手的寶可夢屬性,招式威力會翻倍;如果對手的寶可夢屬性對寶可夢使用的招式屬性有抵抗效果,招式威力會減半。

現在皮卡丘和他的夥伴們都只學會了三個招式,第乙個招式都是和自身屬性相同的招式,第二個招式都是一般屬性的招式,第三個招式都是其他屬性的招式,且第三個招式威力固定是60。

下面是屬性相剋關係:

water(水)屬性招式克制火屬性寶可夢,被草、水屬性寶可夢抵抗。

fire(火)屬性招式克制草屬性寶可夢,被水、火屬性寶可夢抵抗。

grass(草)屬性招式克制水屬性寶可夢,被草、火屬性寶可夢抵抗。

electric(電)屬性招式克制水屬性寶可夢,被草、電屬性寶可夢抵抗。     

normal(一般)屬性招式並不克制其他屬性的寶可夢,也不被其他屬性的寶可夢抵抗。

舉例:水屬性招式克制火屬性寶可夢,招式威力*2;電屬性招式被草屬性寶可夢抵抗,招式威力*0.5

現在請你幫助皮卡丘及他的夥伴,選出在對戰中實際威力最大的招式。

input

輸入資料有多組,到eof結束。

每組資料先輸入己方寶可夢屬性和對方寶可夢屬性(雙方的屬性一定是水、火、草、電四種屬性之一),之後輸入兩個整數a1,a2(1<=a1,a2<=200),a1代表己方寶可夢第乙個招式的威力,a2代表己方寶可夢第二個招式的威力。最後輸入乙個屬性,代表己方寶可夢第三個招式的屬性,第三個招式屬性保證與己方寶可夢屬性不同。

output

對於每組輸入,輸出乙個整數x,代表造成最大傷害的招式編號。如果存在多個招式的實際威力相同,輸出編號最小的招式。

example input

water grass

110 100 fire

electric electric

90 80 grass

grass water

40 102 electric

example output

3

21

// 用了一晚上加一上午寫出的**~注意認真的理解題意,仔細推敲,get 新技能。

01#include

02#include

03intmain(void)

04;// 字串二維陣列的定義!!!

07doublex1, x2, x3, max;

08inti, a, b, c, m;

09doublet[4][4] = , , , };// 直接來比較己方和對方的招式 產生的結果 在一乘即可。

10//因為在二維陣列中有小數點所以用double型別。

11while(~scanf("%s %s %lf %lf %s", s1, s2, &x1, &x2, s3))

12

21if(strcmp(s2, s[i]) == 0)

22

25if(strcmp(s3, s[i]) == 0)

26

29}

30x1 = x1 * t[a][b];

31x3 = x3 * t[c][b];

32max = x1;

33m = 1;

34if(x2 > max)

35

39if(x3 > max)

40

44printf("%d\n", m);

45}

46return0;

47}

畫乙隻動態的皮卡丘(二)

繼續總結過程中學到的新知識,這是第2部分。upperlip upperlip.left.lowerlip設定容器絕對定位 height 110px 設定框的高度,使框的高度與 相對元素底對齊 width 300px position absolute bottom 0 距離相對元素下面0,即上移至 ...

皮卡丘的夢想2(線段樹 二進位制狀態壓縮)

description 一天,乙隻住在 501 實驗室的皮卡丘決定發奮學習,成為像 leiq 一樣的巨巨,於是他向鎮上的賢者金桔請教如何才能進化成乙隻雷丘。金桔告訴他需要進化石才能進化,並給了他乙個地圖,地圖上有 n 個小鎮,他需要從這些小鎮中收集進化石。接下來他會進行 q 次操作,可能是打聽進化石...

關於二維陣列和二維指標的理解總結

二維陣列和二維指標有很多相似也有很多不同 相同點是他們都可以通過位址去取資料,不同點是 首先二維陣列本身儲存資料,二維指標需要指向別的資料才有用。其次陣列的指標是不可變的,指標是可變的。例 比如上面的二維陣列 a是位址,相當於 int p 3 4 a,單位為 int 3 4 sizeof a 4 而...