我重现了你的问题。在 Ubuntu 上,/bin/sh
符号链接到dash
.
$ dash ./farn.c
./farn.c: 8: Syntax error: Bad for loop variable
C 程序很少被 Bourne shell 解释器(或其派生程序之一)正确解释。
用 C 编译器编译程序,然后运行可执行文件(或者,如果你能找到一个 C 语言解释器,也可以使用)。在 Ubuntu 上,您可以使用gcc
:
$ gcc -W -Wall -Werror -pedantic -std=c99 farn.c -o farn
$ ./farn
由于K&R书早于C.99,所以上面的编译命令会产生错误:
cc1: warnings being treated as errors
farn.c:4: warning: return type defaults to 'int'
要解决此问题,您可以简单地main()
使用显式int
返回类型更新 的声明。在 C.99 中,遇到隐式返回}
的末尾的,因此添加就足够了。main()
0
int
#include <stdio.h>
int main()
{
int fahr;
for(fahr = 0; fahr <= 300; fahr = fahr + 20)
{
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}
}