You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言双人井字棋开发中将输入数字转为二维数组下标的方法

C语言井字棋格子编号转二维坐标实现方法

核心转换逻辑

不需要写冗余的if判断,两步即可完成转换:

  1. 先把输入的字符类型编号转为整数
    你拿到的用户输入是'1'到'9'的字符,利用ASCII码特性直接转整数即可:
char input;
scanf("%c", &input);
int num = input - '0'; // 字符'1'转整数1,以此类推
  1. 用算术公式直接计算行下标i和列下标j
    按照你给出的映射规则,直接用整数除法和取余运算就能得到对应下标:
int i = (num - 1) / 3;
int j = (num - 1) % 3;

公式校验

可以对应你的规则自行验证:

  • 输入1:i=(1-1)/3=0,j=(1-1)%3=0 符合要求
  • 输入3:i=(3-1)/3=0,j=(3-1)%3=2 符合要求
  • 输入5:i=(5-1)/3=1,j=(5-1)%3=1 符合要求
  • 输入9:i=(9-1)/3=2,j=(9-1)%3=2 符合要求

额外注意点

建议补充输入合法性校验,避免用户输入异常内容导致数组越界或逻辑错误:

if (num < 1 || num >9) {
    printf("输入非法,请输入1-9之间的格子编号\n");
    // 此处可补充输入重试逻辑
} else if (plateau[i][j] == 'X' || plateau[i][j] == 'O') {
    printf("该格子已被占用,请重新选择\n");
    // 此处可补充输入重试逻辑
} else {
    plateau[i][j] = 当前玩家标识; // 赋值'X'或'O'
}

内容的提问来源于stack exchange,提问作者Mister-3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:36:04