我正在关注CUNY的一个例子,我之前从未做过任何事情,所以我可能不知道自己在做什么。
考虑下面的程序。
当我使用第gcc -g -o forwardadding forwardadding.c
行进行编译时
我收到了消息:
forwardadding.c:9:17: error: expected expression before ‘<’ token
一旦我编译代码,我可以使用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);
}
答案 0 :(得分:9)
不需要shebang。您可以添加Emacs模式行注释。
for
循环应为:
for (i = 1; i < 10000000; i++)
您的代码缺少第二个i
。
是的,您可以在编译代码后使用GDB。
如果你的数字从10,000,000减少到数到10,000,000,你会得到更好的数学答案。大约i = 10000
之后,额外的值不会对结果添加任何内容。
请养成编写C99代码的习惯。这意味着你应该写:
int main(void)
需要返回类型int
并建议使用void
。
答案 1 :(得分:6)
您需要在for循环中放置一个变量来表示完整的表达式(可能是第9行......)
for( i = 1; < 10000000; i++)
更改为
for( i = 1; i < 10000000; i++)
答案 2 :(得分:1)
您错过了i
。正确的是,Jonathan Leffler建议并保存您的文件。打开终端,只需使用它来编译代码gcc your_file_name.c
,然后编译代码,运行刚刚编译好的./a.out
类型的代码,程序运行并显示输出。