【问题描述】
鱿鱼游戏,此时有100个参加的人。排成了10行10列;首先将其从1到100编号。
实现以下所示:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
此时进行鱿鱼游戏
输入一个数
则此数对应编号的参赛者的值变为0
之后继续输出数字进行淘汰。
当输入的数字为0时,鱿鱼游戏结束,打印出玩家的表格
【输入样例】
1
2
4
0
【输出样例】
0 0 3 0 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
总体思路为:1. 定义二维数组,遍历计数赋编号
2. 遍历判断输入数,将其对应编号赋0
3. 打印
代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
int s[10][10];
int i, j;
int t = 1;
int x;
int a = 0;
//形成10行10列,将参赛者从1到100编号
for (i=0; i<10; i++)
{
for (j=0; j<10; j++)
{
s[i][j] = t;
t++;
}
}
//将输入数对应编号赋为0
do
{
scanf("%d", &x);
if (x == 0)
{
break;
}
else if (x > 0)
{
for (i=0; i<10; i++)
{
for (j=0; j<10; j++)
{
if (s[i][j] == x)
{
s[i][j] = 0;
}
}
}
}
}while(x > 0);
//打印
for (i=0; i<10; i++)
{
for (j=0; j<10; j++)
{
printf("%d ", s[i][j]);
a++;
}
printf("\n");
}
return 0;
}