C - 描述代码和重写

时间:2013-04-17 14:51:48

标签: c syntax

以下是编程错误的一些示例。目的是知道代码在做什么,并用更好的代码重写它。

q http://gyazo.com/4cb5f604f9d57561245544187b0a2139.png?1366209953

q http://gyazo.com/c3739424a78ccc3b4b90f7ccaf1317a7.png?1366209918

我尝试做的是按原样键入,编译并尝试弄清楚正在做什么。但我的进展很少。 这是一个试卷问题,所以我不能发送年龄试图解决这个问题,但同时这是一个完整的问题。

这些代码在做什么以及如何解决它们(更快)?

谢谢。

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

3 个答案:

答案 0 :(得分:1)

这些是非常基本和出色的代码。 只需在纸上执行一系列代码,您就可以轻松获得有关他们正在做什么的答案。 比如,在B中,我们创建了一个具有相同值item的数组,直到b != -1。 同样地,只需假设一些值并在纸上解决它并用适当的线和缩进重写。

答案 1 :(得分: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;
}

答案 2 :(得分:1)

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

您可以使用许多好的参考来清除您的混淆,例如thisthis