switch(at){
case (at>0 && at<5) :
printf(\"Average Time Taken (Hrs)\\n%d.0\",at);
printf(\"Your Salary is Rs.%d\",pj*1500 + 5000);
I'm afraid this is not possible. Quoting C11, chapter §6.8.4.2
The expression of each
caselabel shall be an integer constant expression and no two of the case constant expressions in the sameswitchstatement shall have the same value after conversion. [....]
so the case label expression cannot be a runtime-generated value dependent.
You can, use a fall-through syntax to achieve what you want, something like
switch(at){
case 1:
case 2:
case 3:
case 4:
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
//some other case
Otherwise, if you're ok with using gcc extension, you can use case-range syntax, something like
switch(at){
case 1 ... 4:
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;