【发布时间】:2017-01-08 01:36:51
【问题描述】:
有一个 NxN 大小的矩阵(N 是 2-10 之间的数字),我们可以在其中放下棋子。你可以只放一块一块。程序询问桌子的大小,然后询问棋子的位置,就像这样。
1. 件:B2
2. 件:C5
3. 件:D2
...
在最后一段之后,用户可以通过键入“x”退出循环。
我的问题是我必须像这样将所有这些数据放入一个数组中:
char position[100] = {B2C5D2}
这是我尝试使用的函数的代码:
char inputPosition(char position[]) {
int i = 0;
do {
printf("%d. piece: ", i+1);
scanf("%s", &position[i]);
i++;
}while(position[i-1]!='x');
return position;
}
输出如下所示:(对于 B2C5D2)
BCDx
我不确定我应该使用 scanf 并且程序不应该将值 x 作为参数,但我不知道该怎么做。
编辑:在我的示例中,职位是否有效都没有关系。我还编辑了字符位置的最大输入。 (我必须使用的最大变量约为 10)我真正的问题是我不能将每个位置 [i] 放入一个没有空格的数组中。
【问题讨论】:
-
你不需要读到
&position[2 * i]吗?并且您只能在 20 个字符的数组中存储 9 个位置,除非您使用" %2c"代替%s。对于该位置,您仍然没有包含 10 对字符的以空字符结尾的字符串。您也没有检查职位是否有效。