c - 为什么这段代码总是给出这个错误?语法错误: Bad for loop variable

标签 c loops for-loop syntax

这是从 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/

相关文章:

c - 列出给定大小的单元组的元素的最快方法是什么?

c - (C 语言) 如何在使用 getchar() 时使用退格键;在这个功能?

c - 退出应用程序时 luaF_newproto 处的 Lua 5.1 段错误

javascript - 无法将键设置为 for 循环内的对象

c - 计算参数数量的宏

c - 选择菜单选项后再次打印菜单。 ."do while"选择选项后循环无限

c++ - 了解循环不变量

java - 用于 3 个嵌套循环的大 O

c - 两个相似的 for 循环给出不同的结果

windows - 在 for 语句中运行命令会给我与单独运行的命令不同的结果?