Программа зависает через некоторое время
Привет, ребята, я работал над своим университетским заданием, которое заключалось в том, чтобы написать программу, чтобы получать данные о сотрудниках, работающих в компании, от пользователя, а затем получать данные об их зарплатах от пользователя. Цель состояла в том, чтобы рассчитать чистую зарплату (вычесть сумму налога, объясните в кодировке ниже), а затем найти неудачливых людей, у которых была более высокая зарплата, но более низкая чистая зарплата. Ниже приведена кодировка, которую я написал. Теперь проблема в том, что когда я запускаю программу, она работает нормально и спрашивает сотрудников у пользователя, после того, как я даю номер, она снова работает нормально и спрашивает их зарплату, после того, как я дал зарплату, она ничего не делает и просто замирает, а черта продолжает мигать. Пожалуйста, помогите мне, в чем проблема? Это кодировка:
#include <iostream> using namespace std; void getInput(double [][2], int); void calcSal(double [][2], int); void locUnLucky (double [][2], int [], int); void displayOutput (double [][2], int [], int); int main() { const int arraySize= 100; int totalEmps; int lucky[] = {0}; double sal[arraySize][2]; cout << "Please enter the total number of employees working in your company: "; cin >> totalEmps; getInput(sal, totalEmps); calcSal(sal, totalEmps); locUnLucky(sal, lucky, totalEmps); displayOutput(sal, lucky, totalEmps); } void getInput(double sal[][2], int totalEmps) { for (int i = 0; i < totalEmps; i++) { cout << "Please enter the gross salary in dollars for employee #" << i << ": "; cin >> sal[i][0]; } } void calcSal(double sal[][2], int totalEmps) { for (int i = 0; i < totalEmps; i++) { if (sal[i][0] <= 5000) { // no tax deduction sal[i][1] = sal[i][0]; } else { if(sal[i][0] <= 10000) { // 5% tax deduction sal[i][1] = sal[i][0] - (0.05 * sal[i][0]); } else { if(sal[i][0] <= 20000) { // 10% tax deduction sal[i][1] = sal[i][0] - (0.1 * sal[i][0]); } else { // 15% tax deduction sal[i][1] = sal[i][0] - (0.15 * sal[i][0]); } } } } } void locUnLucky (double sal[][2], int lucky[], int totalEmps) { int i, j, grossSalary, netSalary; for (i = 0; i < totalEmps; i++) { grossSalary = sal[i][0]; netSalary = sal[i][1]; for (j = 0; i < totalEmps; j++) { if(grossSalary > sal[i][0] && netSalary < sal[i][1]) { lucky[i] = 1; } } } } void displayOutput (double sal[][2], int lucky[], int totalEmps) { for (int i = 0; i < totalEmps; i++) { if (lucky[i] == 1) { cout << "Enmployee #" << i+1 << " is unlucky with $" << sal[i][0] << " as gross salary whereas $" << sal[i][1] << "as net salary" << endl; } } }
Что я уже пробовал:
Поскольку я не могу понять, в чем может быть проблема, я ничего не пробовал
RedDk
Программа выглядит очень логичной, но просто взглянуть на базовую природу было бы намного проще, если бы были установлены некоторые точки останова (выберите пару) и все это было запущено через отладчик.