请删帖。
本帖最后由 xhtxhtxht 于 2023-1-25 15:30 编辑请删帖。 47行上 本帖最后由 jackz007 于 2021-4-4 00:17 编辑
请解释一下这一句,什么意思?
if(ot = !ot)
判断相等得这样写
if(ot == !ot)
但是,不管 ot 是任何变量类型,无论等于任何值,ot == ! ot 是永远都不可能成立的。 这一句是把ot赋值相反,就是一个人走完一步轮到下一个人
就是赋值的意思,原来是0现在是1,原来是1现在是0 xhtxhtxht 发表于 2021-4-4 07:58
这一句是把ot赋值相反,就是一个人走完一步轮到下一个人
就是赋值的意思,原来是0现在是1,原来是1现在是0
取反相当于赋值语句,if则是条件判断语句,这能放在一起用吗 本帖最后由 李京 于 2021-4-4 08:39 编辑
xhtxhtxht 发表于 2021-4-4 07:58
这一句是把ot赋值相反,就是一个人走完一步轮到下一个人
就是赋值的意思,原来是0现在是1,原来是1现在是0
你想弄一个下棋的东西吗
你的问题出在scanf哪里
你每一次输入不只是输入你需要的字符
例如:你输入 a 分隔符 1 换行
这样就是多了两个不需要的
要改只要在每一个scanf加一个getchar函数就行了
getchar函数是读取掉一个字符 哪里多输入的 就加一个就行了
scanf("%c", &x);// 你这里如果不输入分隔符下面一个getchar函数就不需要
getchar();
scanf("%c", &y); // 这里一定要加 因为肯定会输入一个换行表示结束
getchar();
x = x_to_i(x);
if (ot = !ot)
pieces = 'X';
else
pieces = 'O';
加上了getchar();还是不行,早就试过了
而且我在scanf之前完全没有输入的getchar,getch,getche......任何一个输入,为什么会有换行符? 本帖最后由 xhtxhtxht 于 2021-4-4 08:55 编辑
按你的加了getchar
PS D:\C> cd "d:\C\" ; if ($?) { gcc -std=c11 五子棋.c -o 五子棋.exe } ; if ($?) { .\五子棋.exe }
a b c d e f g h i j k l m n o p q r s
1+ + + + + + + + + + + + + + + + + + +
2+ + + + + + + + + + + + + + + + + + +
3+ + + + + + + + + + + + + + + + + + +
4+ + + + + + + + + + + + + + + + + + +
5+ + + + + + + + + + + + + + + + + + +
6+ + + + + + + + + + + + + + + + + + +
7+ + + + + + + + + + + + + + + + + + +
8+ + + + + + + + + + + + + + + + + + +
9+ + + + + + + + + + + + + + + + + + +
10+ + + + + + + + + + + + + + + + + + +
11+ + + + + + + + + + + + + + + + + + +
12+ + + + + + + + + + + + + + + + + + +
13+ + + + + + + + + + + + + + + + + + +
14+ + + + + + + + + + + + + + + + + + +
15+ + + + + + + + + + + + + + + + + + +
16+ + + + + + + + + + + + + + + + + + +
17+ + + + + + + + + + + + + + + + + + +
18+ + + + + + + + + + + + + + + + + + +
19+ + + + + + + + + + + + + + + + + + +
c4
一直回车也没反应
页:
[1]