我正在关注CUNY的一个例子,我之前从未做过任何事情,所以我可能不知道自己在做什么.
考虑下面的程序.
当我使用该行进行编译时,gcc -g -o forwardadding forwardadding.c
我遇到了以下消息:
forwardadding.c:9:17: error: expected expression before ‘<’ token
Run Code Online (Sandbox Code Playgroud)一旦我得到代码编译,我可以使用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);
}
Run Code Online (Sandbox Code Playgroud)
不需要shebang.您可以添加Emacs模式行注释.
该for循环应该是:
for (i = 1; i < 10000000; i++)
Run Code Online (Sandbox Code Playgroud)
你的代码缺少第二个i.
是的,您可以在编译代码后使用GDB.
如果你从10,000,000倒数到数到10,000,000,你会得到更好的数学答案.在大约之后i = 10000,额外的值不会对结果添加任何内容.
请养成编写C99代码的习惯.这意味着你应该写:
int main(void)
Run Code Online (Sandbox Code Playgroud)
具有所需的返回类型int和void建议.
你需要在for循环中放一个变量来表示一个完整的表达式(可能是第9行......)
for( i = 1; < 10000000; i++)
Run Code Online (Sandbox Code Playgroud)
改变这个
for( i = 1; i < 10000000; i++)
Run Code Online (Sandbox Code Playgroud)