【问题标题】:Why won't this Fizzbuzz program in C work? [closed]为什么这个 C 语言中的 Fizzbuzz 程序不起作用? [关闭]
【发布时间】:2013-06-25 19:18:17
【问题描述】:

我已经学习 C 几个小时了,并且想尝试一个 Fizzbizz 程序来测试我到目前为止的知识。

这是我写的代码:

#include <stdio.h>

int main() {
int i;
for (i = 1; i <21; i++) {
    if (i % 3 == 0) {
        if (i % 5 == 0) {
            printf("Fizzbuzz\n");
        }
        else {
            printf("Fizz\n"); 
        }
    }
    elseif (i % 5 == 0) {
        if (i % 3 == 0) {
            printf("Fizzbuzz\n");
        }
        else {
            printf("Buzz\n");
        }
    }
    else {
        printf("%d", i);
    }
}
return 0;
}

但是编译器返回

在函数'main'中: 第 14 行:错误:预期的 ';'在'{'令牌之前

我怀疑这个错误是微不足道的,但你能解释一下为什么它不起作用,如果我至少有正确的想法吗?

【问题讨论】:

  • 顺便说一句,你永远不会到达第二个 Fizzbuzz。
  • 由于elseif 不是一个有效的关键字,编译器假定它是一个函数调用,不能合法地紧跟{

标签: c fizzbuzz


【解决方案1】:

我认为你需要“else if”而不是“elseif”。

【讨论】:

    【解决方案2】:

    elseif 不是 C 关键字;你需要else if

    此外,您可能希望在数字大小写中使用换行符:

        printf("%d\n", i);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多