Error: expression must have integral or enum type

Almost complete with my programme and then I just notice I receive an error "expression must have integral or enum type"... Can anyone help me what does this mean and advice me what should I do?

// grossweek.cpp

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int main()
{
	double salesperson[10];
	int counter = 0;
	int group1 = 0, group2 = 0, group3 = 0, group4 = 0, group5 = 0, group6 = 0, group7 = 0, group8 = 0, group9 = 0;

	cout << "Please input 10 salespeoples' gross sales for that week: \n";

	for (int a = 0; a < 10; ++a)
		cin >> salesperson[a];

	for (int b = 0; b < 10; ++b)
		salesperson[b] = (salesperson[b] * 9/100) + 200;

	cout << "Salespeople No." << setw(18) << "Receives" << "\n";
	for ( int d = 0; d < 10; ++d)
		cout << setw(7) << d << setw(19) << "$" << salesperson[d] << endl;

	for ( int e = 0; e < 10; ++e)
	switch (salesperson[e]) // error begins here
	{
	case (e < 300):
			++group1; 
			++counter;
			break;
	case (e < 400):
			++group2;
			++counter;
			break;
	case (e < 500):
			++group3;
			++counter;
			break;
	case (e < 600):
			++group4;
			++counter;
			break;
	case (e < 700):
			++group5;
			++counter;
			break;
	case (e < 800):
			++group6;
			++counter;
			break;
	case (e < 900):
			++group7;
			++counter;
			break;
	case (e < 1000):
			++group8;
			++counter;
			break;
	case (e >= 1000):
			++group9;
			++counter;
			break;
	default:
		break;
		}

	cout << "Group: \n";
	cout << "\n$200-$299      : " << group1;
	cout << "\n$300-$399      : " << group2;
	cout << "\n$400-$499      : " << group3;
	cout << "\n$500-$599      : " << group4;
	cout << "\n$600-$699      : " << group5;
	cout << "\n$700-$799      : " << group6;
	cout << "\n$800-$899      : " << group7;
	cout << "\n$900-$999      : " << group8;
	cout << "\n$1000 and over : " << group9;
}
what line gives you the error?

EDIT:

oh wait I see it.

case (e < 300):

You can't do this. A case can only be a single number. You can't do a case based on a range. If you need to check for a range of values, use an else/if chain.
Last edited on
I think it might be your cases. Technically, they are Boolean values, not integers or enums.

Correct me if I'm wrong, Disch.
Thanks for realising my mistake for me. Guess ill use if else function then.
Topic archived. No new replies allowed.