7-32 刮刮彩票
分數 20
全屏瀏覽題目
切換布局
作者?DAI, Longao
單位?杭州百騰教育科技有限公司
“刮刮彩票”是一款網絡游戲里面的一個小游戲。如圖所示:
每次游戲玩家會拿到一張彩票,上面會有 9 個數字,分別為數字 1 到數字 9,數字各不重復,并以?3×3?的“九宮格”形式排布在彩票上。
在游戲開始時能看見一個位置上的數字,其他位置上的數字均不可見。你可以選擇三個位置的數字刮開,這樣玩家就能看見四個位置上的數字了。最后玩家再從 3 橫、3 豎、2 斜共 8 個方向中挑選一個方向,方向上三個數字的和可根據下列表格進行兌獎,獲得對應數額的金幣。
數字合計 | 獲得金幣 | 數字合計 | 獲得金幣 |
---|---|---|---|
6 | 10,000 | 16 | 72 |
7 | 36 | 17 | 180 |
8 | 720 | 18 | 119 |
9 | 360 | 19 | 36 |
10 | 80 | 20 | 306 |
11 | 252 | 21 | 1,080 |
12 | 108 | 22 | 144 |
13 | 72 | 23 | 1,800 |
14 | 54 | 24 | 3,600 |
15 | 180 |
現在請你寫出一個模擬程序,模擬玩家的游戲過程。
輸入格式:
輸入第一部分給出一張合法的彩票,即用 3 行 3 列給出 0 至 9 的數字。0 表示的是這個位置上的數字初始時就能看見了,而不是彩票上的數字為 0。
第二部給出玩家刮開的三個位置,分為三行,每行按格式?x y
?給出玩家刮開的位置的行號和列號(題目中定義左上角的位置為第 1 行、第 1 列。)。數據保證玩家不會重復刮開已刮開的數字。
最后一部分給出玩家選擇的方向,即一個整數: 1 至 3 表示選擇橫向的第一行、第二行、第三行,4 至 6 表示縱向的第一列、第二列、第三列,7、8分別表示左上到右下的主對角線和右上到左下的副對角線。
輸出格式:
對于每一個刮開的操作,在一行中輸出玩家能看到的數字。最后對于選擇的方向,在一行中輸出玩家獲得的金幣數量。
輸入樣例:
1 2 3
4 5 6
7 8 0
1 1
2 2
2 3
7
輸出樣例:
1
5
6
180
代碼長度限制
16 KB
時間限制
400 ms
內存限制
64 MB
參考答案
#include<stdio.h>
int main()
{int i,j,r,c,gua,sum=0;int jgg[3][3];for(i=0;i<3;i++){for(j=0;j<3;j++){scanf("%d",&jgg[i][j]);sum+=jgg[i][j];if(jgg[i][j]==0){r=i;c=j;}}}jgg[r][c]=45-sum;for(i=0;i<3;i++){scanf("%d %d",&r,&c);printf("%d\n",jgg[r-1][c-1]);//刮數階段}scanf("%d",&gua);//挑選方向sum=0;for(i=0;i<3;i++){switch(gua){case 1:sum+=jgg[0][i];break;case 2:sum+=jgg[1][i];break;case 3:sum+=jgg[2][i];break;case 4:sum+=jgg[i][0];break;case 5:sum+=jgg[i][1];break;case 6:sum+=jgg[i][2];break;case 7:sum+=jgg[i][i];break;case 8:sum+=jgg[i][2-i];break;}}switch(sum){case 6:printf("10000");break;case 7:printf("36");break;case 8:printf("72");break;case 9:printf("360");break;case 10:printf("80");break;case 11:printf("252");break;case 12:printf("108");break;case 13:printf("72");break;case 14:printf("54");break;case 15:printf("180");break;case 16:printf("72");break;case 17:printf("180");break;case 18:printf("119");break;case 19:printf("36");break;case 20:printf("306");break;case 21:printf("1080");break;case 22:printf("144");break;case 23:printf("1800");break;case 24:printf("3600");break;}
}