某商场为答谢新老顾客,开发了一款小程序举办抽积分活动。初始界面为6行6列的积分表和一行6张扑克牌。积分表中每一个格子都有一个数字,代表抽到后能增加的积分。6张扑克牌上分别显示数字1-6,为增加趣味性,隐藏了其中一个数字。顾客点击开始按钮,6张扑克牌自动翻面并快速随机交换位置。交换停止后,顾客可以翻开其中1张扑克牌,假定该扑克牌数字为i,则顾客可以从6*6的积分表中选择第i行或者第i列,则该行(列)上的6个数字和就是顾客得到的积分。顾客共有3次翻动扑克牌的机会,请你计算下顾客得到的总积分。 输入格式: 输入第一部分分六行给出6*6的积分表(行号和列号都从1开始),每行6个整数,其间用空格分割。 第二部在一行中给出六张扑克牌上的数字,其间空格分割,0 表示的是隐藏的数字,即是1-6中缺失的那一个。 最后一部分分三行,每行给出两个正整数i,d,其间空格分割,第一个代表顾客翻牌得到的数字,第二个代表选择的积分计算方向,d为1表示计算第i行,d为2表示计算第i列。 输出格式: 对于每一个顾客,在一行中输出其3次翻牌得到的总积分 用c语言完成上述要求
时间: 2024-02-29 20:51:40 浏览: 141
```c
#include <stdio.h>
#include <stdlib.h>
#define ROW 6
#define COL 6
int main()
{
int score[ROW][COL];
int cards[6];
int i, j, k, num, dir, total_score;
// input score table
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
scanf("%d", &score[i][j]);
}
}
// input cards
for (i = 0; i < 6; i++)
{
scanf("%d", &cards[i]);
}
// input and process each customer
for (k = 0; k < 3; k++)
{
total_score = 0;
scanf("%d %d", &num, &dir);
// calculate score
if (cards[num-1] == 0)
{
printf("Invalid card number!\n");
continue;
}
if (dir == 1)
{
for (i = 0; i < COL; i++)
{
total_score += score[num-1][i];
}
}
else if (dir == 2)
{
for (i = 0; i < ROW; i++)
{
total_score += score[i][num-1];
}
}
else
{
printf("Invalid direction!\n");
continue;
}
printf("%d\n", total_score);
}
return 0;
}
```
阅读全文