如何修复 DevCC 编译器错误:[错误] 在"if"之前预期非限定 id?

How to fix DevCC compiler error: [Error] expected unqualified-id before 'if'?

本文关键字:错误 id if 何修复 编译器 DevCC      更新时间:2023-10-16

我正在做一个家庭作业问题,需要一些帮助弄清楚如何求解编译器错误:[错误]预期的'if'if'。

我尝试过在int主函数中加入功能,但会导致更多错误。我尝试寻找缺失的卷发括号,但似乎找不到任何。

" if(surgy!='y'("是我在'if''''。

之前得到的[错误]的地方
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
double calcFare (double perMinute, double lengthMinutes, double minuteFare, double perMile, double distanceMiles, double mileFare, double baseFare, double totalFare, char carClass);
double calcFareSurge (double surgeFare, double perMinute, double lengthMinutes, double minuteFare, double perMile, double distanceMiles, double mileFare, double baseFare, double totalFare, double surgeMultiplier, char carClass);
double test;
void output (string name, double totalFare);
int main()
{
    string name;
    double surgeFare, perMinute, lengthMinutes, minuteFare, perMile, distanceMiles, mileFare, surgeMultiplier, baseFare, totalFare;
    char surge, carClass;
    cout << "Enter name: " << endl;
    getline(cin, name);
    cout << "Enter time in minutes: " << endl;
    cin >> lengthMinutes;
    cout << "Enter distance in miles: " << endl;
    cin >> distanceMiles;
    cout << "Enter 'X' for uberX or 'S' for SUV or 'L' for luxury: " << endl;
    cin >> carClass;
    carClass = (char) toupper(carClass);
    cout << "Enter 'Y' if surge or 'N' if not: " << endl;
    cin >> surge;
    surge = (char) toupper(surge);
    if (surge == 'Y')
    {
        cout << "Enter surge multiplier: " << endl;
        cin >> surgeMultiplier;
    }
    totalFare = calcFare(perMinute, lengthMinutes, minuteFare, perMile, distanceMiles, mileFare, baseFare, totalFare, carClass);
    output(name, totalFare);
    system ("pause");
    return 0;
}
    if (surge != 'Y')
    {
        double calcFare (double perMinute, double lengthMinutes, double minuteFare, double perMile, double distanceMiles, double mileFare, double baseFare, double totalFare, char carClass)
        {       
            if (carClass == 'X')
            {       
                baseFare = 2.00;
                perMinute = 0.22;
                perMile = 1.15;
                minuteFare = perMinute * lengthMinutes;
                mileFare = perMile * distanceMiles;
                totalFare = minuteFare + mileFare + baseFare;
            }
            else if (carClass == 'S')
            {   
                baseFare = 15.00;
                perMinute = 0.90;
                perMile = 3.75;
                minuteFare = perMinute * lengthMinutes;
                mileFare = perMile * distanceMiles;
                totalFare = minuteFare + mileFare + baseFare;   
            }
            else if (carClass == 'L')
            {
                baseFare = 5.00;
                perMinute = 0.50;
                perMile = 2.75;
                minuteFare = perMinute * lengthMinutes;
                mileFare = perMile * distanceMiles;
                totalFare = minuteFare + mileFare + baseFare;
            }   
        }
    else
    {
        double calcFareSurge (double surgeFare, double perMinute, double lengthMinutes, double minuteFare, double perMile, double distanceMiles, double mileFare, double baseFare, double totalFare, double surgeMultiplier, char carClass)
        {
            if (carClass == 'X')
            {   
                baseFare = 2.00;
                perMinute = 0.22;
                perMile = 1.15;
                surgeFare = baseFare * surgeMultiplier;
                minuteFare = perMinute * lengthMinutes;
                mileFare = perMile * distanceMiles;
                totalFare = minuteFare + mileFare + baseFare;
            }
            else if (carClass == 'S')
            {   
                baseFare = 15.00;
                perMinute = 0.90;
                perMile = 3.75;
                surgeFare = baseFare * surgeMultiplier;
                minuteFare = perMinute * lengthMinutes;
                mileFare = perMile * distanceMiles;
                totalFare = minuteFare + mileFare + baseFare;
            }
            else if (carClass == 'L')
            {
                baseFare = 5.00;
                perMinute = 0.50;
                perMile = 2.75;
                surgeFare = baseFare * surgeMultiplier;
                minuteFare = perMinute * lengthMinutes;
                mileFare = perMile * distanceMiles;
                totalFare = minuteFare + mileFare + baseFare;
            }
        }
    }
    void output(string name, double totalFare)     
    {
        cout << setprecision(2) << fixed;
        cout << "Rider's name: " << name << endl;
        cout << "Total: $ " << totalFare << endl;
        return;
    }
if (surge != 'Y')
    {.........
     .......
}

上述代码段需要放入单独的函数或内部((。

(a(如果您将其移动到主函数内部,您仍然会遇到另一个错误否则,不是函数定义,在这两种情况下,您都必须定义IF之外的功能。

(b(您可以创建一个新功能并相应地处理案例。


建议阅读

( - (函数呼叫和函数定义之间的差异。

( - (从函数调用返回值

希望这有帮助