### Array Help

Hey so I am in a class where we are using Microsoft C++ and right now we are working on a program using arrays. We are given a problem where we have to sort people's salaries into categories of how much money they earn. So if they make \$200-\$299 they are in a category and if the earn \$300-\$399 they are in a different category and so on. I get my program to calculate the salary but when it goes into the categories, it puts a 1 in all the categories when it is only supposed to go into one certain category. Please help!!!!

Here is my code!!

#include <iostream>
#include <conio.h>

using namespace std;

int main(){

char again='y';
while(again == 'y')

{
system ("CLS");
int salary[9] = {0} , grosssales, earnedsalary;

cout << "Enter the salesperson's gross sales: \$";

cin >> grosssales;

earnedsalary = 200 + grosssales*.09;

cout << "The earned salary for this salesperson is: \$" << earnedsalary << endl;

if(200 <= earnedsalary <= 299)
salary[0]++;

cout << "\nSalaries in the range of \$200-\$299: " << salary[0]++;

if(300 <= earnedsalary <= 399)
salary[1]++;

cout << "\nSalaries in the range of \$300-\$399: " << salary[1]++;

if(400 <= earnedsalary <= 499)
salary[2]++;

cout << "\nSalaries in the range of \$400-\$499: " << salary[2]++;

if(500 <= earnedsalary <= 599)
salary[3]++;

cout << "\nSalaries in the range of \$500-\$599: " << salary[3]++;

if(600 <= earnedsalary <= 699)
salary[4]++;

cout << "\nSalaries in the range of \$600-\$699: " << salary[4]++;

if(700 <= earnedsalary <= 799)
salary[5]++;

cout << "\nSalaries in the range of \$700-\$799: " << salary[5]++;

if(800 <= earnedsalary <= 899)
salary[6]++;

cout << "\nSalaries in the range of \$800-\$899: " << salary[6]++;

if(900 <= earnedsalary <= 999)
salary[7]++;

cout << "\nSalaries in the range of \$900-\$999: " << salary[7]++;

if(earnedsalary >= 1000)
salary[8]++;

cout << "\nSalaries greater than \$1000: " << salary[8]++;

//cout << "\nSalaries in the range of \$200-\$299: " << salary[0]++;

//cout << "\nSalaries in the range of \$300-\$399: " << salary[1]++;

//cout << "\nSalaries in the range of \$400-\$499: " << salary[2]++;

//cout << "\nSalaries in the range of \$500-\$599: " << salary[3]++;

//cout << "\nSalaries in the range of \$600-\$699: " << salary[4]++;

//cout << "\nSalaries in the range of \$700-\$799: " << salary[5]++;

//cout << "\nSalaries in the range of \$800-\$899: " << salary[6]++;

//cout << "\nSalaries in the range of \$900-\$999: " << salary[7]++;

//cout << "\nSalaries greater than \$1000: " << salary[8]++;

cout << "\n\nWould you like to calculate another saleperson's wage? y/n" << endl;
again = 'y';

getch();

}

}

THANKS!!!
Last edited on
Change this statemenet

if(200 <= earnedsalary <= 299)

and other similar statements

to

if ( 200 <= earnedsalary && earnedsalary <= 299 )

EDIT: Also enclose statements after if in braces

if(200 <= earnedsalary <= 299)
{
salary[0]++;

cout << "\nSalaries in the range of \$200-\$299: " << salary[0]++;
}
Last edited on
Firstly
 `` `` ``int salary[9] = {0} , grosssales, earnedsalary;``

should be initialised outside of the loop as they are then reset everytime the loop runs

secondly
 `` `` ``if(300 <= earnedsalary <= 399)``

means nothing
it should be
 `` `` ``if((300 <= earnedsalary) && (earnedsalary <= 399))``

next

 ``12`` ``````salary[2]++; cout << "\nSalaries in the range of \$400-\$499: " << salary[2]++;``````

should be
 ``12`` ``````salary[2]++; cout << "\nSalaries in the range of \$400-\$499: " << salary[2];``````

presuming you only want to add one on.

finally the letter will always be y as there is no conditional statement at the end
 ``12`` ``````cout << "\n\nWould you like to calculate another saleperson's wage? y/n" << endl; again = 'y';``````

Hope this helps :)

edit: also enclose in brackets as vlad said.
Last edited on
I used all of these suggestions but i am still having problems. When the earnedsalary is \$250, the salary categories up until "greater than 1000" all contain a 1 and the "greater than 1000" contains a 0.
Topic archived. No new replies allowed.