0

我正在关注纽约市立大学的一个例子,我以前从未用 C 做过任何事情,所以我可能不知道我在做什么。

考虑下面的程序。

  1. 我需要用 emacs 编写的 C 代码的 shebang 行吗?
  2. 当我使用该行进行编译时,gcc -g -o forwardadding forwardadding.c 我收到以下消息:

    forwardadding.c:9:17: error: expected expression before ‘<’ token
    
  3. 一旦我得到代码编译,我可以使用 gdb 来调试和运行代码正确吗?

编码:

#include <stdio.h>
#include <math.h>

main()
{
    float sum, term;
    int i;
    sum = 0.0;
    for( i = 1; < 10000000; i++)
    {
        term = (float) i;
        term = term * term;
        term = 1 / term;
        sum += term;
    }
    printf("The sum is %.12f\n", sum);
}
4

3 回答 3

9
  1. 不需要shebang。您可以添加 Emacs 模式行注释。

  2. for循环应该是:

    for (i = 1; i < 10000000; i++)
    

    您的代码缺少第二个i.

  3. 是的,一旦你编译了代码,你就可以使用 GDB。

如果你从 10,000,000 开始倒数,而不是从 10,000,000 开始数,你会得到更好的数学答案。在 about 之后i = 10000,额外的值不会对结果添加任何内容。

请养成编写 C99 代码的习惯。这意味着你应该写:

int main(void)

返回类型为intrequired 和void被推荐。

于 2013-05-12T03:49:11.113 回答
6

您需要在 for 循环中放置一个变量以获得完整的表达式(可能是第 9 行...)

for( i = 1; < 10000000; i++)

改成这个

for( i = 1; i < 10000000; i++)
于 2013-05-12T03:48:29.270 回答
1

您缺少一个i. 只需按照 Jonathan Leffler 的建议进行纠正并保存您的文件即可。打开您的终端并使用它来编译您的代码gcc your_file_name.c,然后您的代码将在接下来编译以运行刚刚编译类型的代码,./a.out您的程序运行并显示输出。

于 2013-05-12T03:54:52.370 回答