c++ - 为什么我会收到一个编译错误 error : ‘else’ without a previous ‘if’ ?

标签 c++ compiler-errors braces

当我尝试编译代码时,我得到一个错误,提示 else without a previous if:

// Fibonacci series using recursion
#include <iostream>
using namespace std;
int fib (int n);

int main()
{
     int n, answer;

     cout << "\n\n\t\tEnter number to find: ";
     cin >> n;
     cout << "\n\n";

     answer = fib(n);

     if(n < 3 && n > 1)
         cout << answer << " is the " << n;
         cout << "nd Fibonacci number\n";
     {
         if(n < 3)
             cout << answer << " is the " << n;
             cout << "st Fibonacci number\n";
         else
             cout << answer << " is the " << n;
             cout << "rd Fibonacci number\n";
     }
     else
         cout << answer << " is the " << n;
         cout << "th Fibonacci number\n";

     return 0;
}

int fib (int n)
{
     cout << "Processing fib (" << n << ")... ";

     if (n < 3)
     {
         cout << "Return 1!\n";
         return 1;
     }
     else
     {
         cout << "Call fib(" << n-2 << ") ";
         cout << "and fib(" << n-1 << ").\n";
         return(fib(n-2) + fib(n-1));
     }
}

最佳答案

肯定是关键括号的问题:

int main()
{
     int n, answer;

     cout << "\n\n\t\tEnter number to find: ";
     cin >> n;
     cout << "\n\n";

     answer = fib(n);

     if(n < 3 && n > 1) {
         cout << answer << " is the " << n;
         cout << "nd Fibonacci number\n";

         if(n < 3) {
             cout << answer << " is the " << n;
             cout << "st Fibonacci number\n";
         } else {
             cout << answer << " is the " << n;
             cout << "rd Fibonacci number\n";
         }
     }
     else {
         cout << answer << " is the " << n;
         cout << "th Fibonacci number\n";
     }
     return 0;
}

关于c++ - 为什么我会收到一个编译错误 error : ‘else’ without a previous ‘if’ ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17587875/

相关文章:

c++ - 减少GPU和CPU之间的带宽(发送原始数据或先预计算)

c++ - C/C++ 中的 typedef 是否真的通过组合复合类型(例如 int*)来创建新类型?

c++ - 将 Boost 与 getter 和 setter 结合使用?

c++ - 为什么同时链接libpng和opencv没有冲突?

unicode - 所有 Unicode 左括号/右括号的列表

jquery - CSS/jQuery : on curly braces of variable height

带冒号的 Elasticsearch 术语查询

c++ - 请解释这个似乎不完整或缺少赋值的 C++ 语法?

javascript - 可以消除浏览器编译错误并显示 react 错误边界吗?

c - 斐波那契函数的递归实现