0

我一直在尝试编写 3x 7 技巧。完整代码可在此处获得:https ://codereview.stackexchange.com/questions/9419/programming-of-3-x-7-trick 。

我被困在第5步。

在此处输入图像描述

当我输入该行的值时出现此错误。

在此处输入图像描述

不知道错误是什么。需要一些指导。

第 6 步:在此处输入图像描述

4

2 回答 2

2

该错误来自 back_to_array 函数,您在内部循环的条件中有一个错字。它应该j < numRows代替i < numRows.

于 2012-02-26T09:32:00.570 回答
1

主要问题是使用i < numRows而不是的错误j < numRows

根据要求,您可以并且应该实施以下一些其他修改:

  • printf("%8i", ...而不是printf("%i\t", ...,因为后者可能会不均匀地分布数字。
  • 清理您的输入。现在,您可以通过输入奇怪的值使程序崩溃。(另外,提示用户是使用值 0、1、2 还是 1、2、3。)
  • 现在,您并没有对第 0 行和第 0 列进行混洗。例如,您从第 6 列开始并逐列遍历,但是一旦到达 0,您就会停止,然后再次进入循环。
  • 有一个问题是你经常注意到相同的数字同时出现在同一行。我相信,虽然我不完全确定,但问题在于您正在对行进行排序。将选中的行始终放在牌组中间的目的是使选中的牌向中心移动。如果对行进行排序,则允许卡片远离中心。我把排序注释掉了,再也没有注意到这个问题。你有理由对行进行排序吗?
  • 关于设计:就个人而言,我不会在开始之前显示一个洗牌的数组并等待击键。相反,我会编写说明并立即要求玩家输入一个数字。在显示第一个数组后,我总是尝试输入一个数字。很烦人。:)
于 2012-02-26T10:56:00.320 回答