这是从 Ritchie 的《C 编程语言》复制的。我尝试进行一些修改,但它总是卡在 for 循环上(第 7 行)
#include <stdio.h>
main()
{
int fahr;
for(fahr = 0; fahr <= 300; fahr = fahr + 20)
{
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}
}
错误:./farn.c:8:./farn.c:语法错误:循环变量错误
最佳答案
我重现了你的问题。在 Ubuntu 上,/bin/sh
符号链接(symbolic link)到 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'
要解决此问题,您只需使用显式 int
返回类型更新 main()
的声明即可。在 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));
}
}
关于c - 为什么这段代码总是给出这个错误?语法错误: Bad for loop variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066583/