首页 > 解决方案 > 预期 'while' 或预期 '}' 之前回答是,但我自己无法解决

问题描述

我已经检查了所有其他问题,但我无法解决它.. 我是编码的 nuub。我不知道为什么它说它需要一段时间或放在哪里,并且它为 LOCS 函数提供了错误的答案,我还能对默认指针警告做些什么。这只是一个开始,我稍后会扩展它,所以这将是一个很大的帮助,我已经尝试了 while 和到处都是右括号,哈哈

顺便说一句,如果有人能告诉我如何使用输入作为决定,正如你所看到的,我正在使用 1 和 2,但如果我可以使用永久和随意,那就太好了。

// Calculate an employee's weekly salary
// Use a do while loop, and an if else statement to have user input data and display the correct values

#include <iostream>
using namespace std;

void main()
{
    //Declaring the constant variables
    const double BONUS_RATE = 5.0;

    //Declaring the variables
    int hours;
    int sales;
    int Status;

    string permanent, casual, Name, status, result, employee;

    double rate, sale_bonus, netPay, gross;



    //set decimal point to 2 positions
    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.precision(2);

    //Display name
    cout << "Calculate an employee's weekly salary\n\n";

    //Do while loop to get hourly rate
    do {


        cout << "Enter employee name: ";
        cin >> Name;

        cout << "Please enter 1 if employee is permanent or 2 if casual: ";
        cin >> Status;

        Status = 0;
        while (Status < 1 || Status > 2);

        if (Status = 1)
        {

            cout << "Permanent employees have a fixed salary of $1000 per week" << endl;

            sales = 0;
            (sales < 1 || sales > 10);

            cout << "If any please enter how many sales employee made this week:";
            cin >> sales;

            sale_bonus = sales * BONUS_RATE;
            netPay = 1000 + sale_bonus;

            cout << endl;

            cout
                << "Hours Worked: \t" << hours << endl
                << "Gross Pay:  \t" << gross << endl
                << "Net Pay  \t" << netPay << endl;

        }
        else if (Status = 2) {



            cout << "Casual employee's hourly rate is $15";
            rate = 15.00;
            cout << endl;



            //while loop for hours

            hours = 0;
            while (hours < 1 || hours > 60)
            {
                cout << "Please enter how many hours you have worked this week:" << endl;
                cout << "Minimum hours is 1" << endl;
                cout << "Maximum hours are 60" << endl;
                cout << "Enter hours worked: ";

                cin >> hours;

            }

            //while loop for bonus

            sales = 0;
            while (sales < 1 || sales > 10)
            {
                cout << "Please enter how many sales you made this week:";
                cin >> sales;
            }

            //Calculate pay


            gross = hours * rate;
            sale_bonus = sales * BONUS_RATE;
            netPay = gross + sale_bonus;

            //Display the results
            cout << endl
                << "Hourly Rate:  \t" << rate << endl
                << "Hours Worked: \t" << hours << endl
                << "Gross Pay:  \t" << gross << endl
                << "Net Pay  \t" << netPay << endl;


        }

    }
}

标签: c++

解决方案


#include <iostream>
using namespace std;

void main()
{
    //Declaring the constant variables
    const double BONUS_RATE = 5.0;

    //Declaring the variables
    int hours;
    int sales;
    int Status;

    string permanent, casual, Name, status, result, employee;

    double rate, sale_bonus, netPay, gross;



    //set decimal point to 2 positions
    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.precision(2);

    //Display name
    cout << "Calculate an employee's weekly salary\n\n";

    //Do while loop to get hourly rate
    do {


        cout << "Enter employee name: ";
        cin >> Name;

        cout << "Please enter 1 if employee is permanent or 2 if casual: ";
        cin >> Status;

   } while (Status < 1 || Status > 2); // add while after do block with }

        if (Status == 1)// use '==' equality check not '=' .
        {

            cout << "Permanent employees have a fixed salary of $1000 per week" << endl;

            sales = 0;
            (sales < 1 || sales > 10);

            cout << "If any please enter how many sales employee made this week:";
            cin >> sales;

            sale_bonus = sales * BONUS_RATE;
            netPay = 1000 + sale_bonus;

            cout << endl;

            cout
                << "Hours Worked: \t" << hours << endl
                << "Gross Pay:  \t" << gross << endl
                << "Net Pay  \t" << netPay << endl;

        }
        else if (Status == 2) { // use '==' equality check not '=' .



            cout << "Casual employee's hourly rate is $15";
            rate = 15.00;
            cout << endl;



            //while loop for hours

            hours = 0;
            while (hours < 1 || hours > 60)
            {
                cout << "Please enter how many hours you have worked this week:" << endl;
                cout << "Minimum hours is 1" << endl;
                cout << "Maximum hours are 60" << endl;
                cout << "Enter hours worked: ";

                cin >> hours;

            }

            //while loop for bonus

            sales = 0;
            while (sales < 1 || sales > 10)
            {
                cout << "Please enter how many sales you made this week:";
                cin >> sales;
            }

            //Calculate pay


            gross = hours * rate;
            sale_bonus = sales * BONUS_RATE;
            netPay = gross + sale_bonus;

            //Display the results
            cout << endl
                << "Hourly Rate:  \t" << rate << endl
                << "Hours Worked: \t" << hours << endl
                << "Gross Pay:  \t" << gross << endl
                << "Net Pay  \t" << netPay << endl;


        }


}

我做了适当的改变:

用于==检查相等性而不是=运算符!

do while : 的语法do { //code... } while(condition)

关闭块后的while必须遵循do!

你的错误

主要错误是您没有关闭 do while 循环,请在评论中寻求更多说明!PS。我建议你先复制我的代码然后运行,然后分析问题!


推荐阅读