1

以下是一些糟糕的编程示例。目的是了解代码在做什么并用更好的代码重写它。

q
(来源:gyazo.com

q
(来源:gyazo.com

我尝试做的是按原样输入,编译它并尝试弄清楚在做什么。但我进步很小。这是一个试卷问题,所以我不能派年龄试图弄清楚这一点,但同时它是一个完整的问题。

这些代码在做什么,我怎样才能(更快)弄清楚它们?

谢谢你。

编辑:我不是要代码。我要求对代码进行解释。所以我真的不能给出片段。

4

3 回答 3

1

一旦您了解了代码在做什么,只需更改变量和函数名称。完毕。在这种情况下,“糟糕的编程”正在为变量使用糟糕的名称,这并没有明确变量本身的用途

编辑:您分配的第二个任务是rewrite it in better code.。这就是练习的美妙之处,在您在心理上“执行”算法之前很难知道发生了什么。提供更好的名称可以提高代码的质量。如果存在潜在的错误,则提供更好的名称可以提示您。

例子:

// bad code
int f(int a, int b){
  return a < b ? a : b;
}

// better code
int min(int a, int b){
  return a < b ? a : b;
}

// what? there must be a bug
int max(int a, int b){
  return a < b ? a : b;
}
于 2013-04-17T15:01:57.853 回答
1

关键是多练习(并学习新概念)。你练习得越多,你接触到的代码就越多。对于初学者来说,这些事情可能看起来非常复杂[在我看到的第一个 C 代码中,我想知道为什么将*乘法放在变量名之前int * a;)]

您可以使用许多很好的参考来消除这样这样的困惑

于 2013-04-17T15:05:59.277 回答
1

这些是非常基本和出色的代码。只需在纸上做一个空运行的代码,你就会很容易地得到关于他们在做什么的答案。就像,在 B 中,我们正在创建一个相同值的数组,item直到b != -1. 同样,只需假设一些值并在纸上解决它,然后用适当的行和缩进重新编写。

于 2013-04-17T14:59:06.940 回答