Salahuddin Salahuddin - 8 days ago 6
C Question

Larger than and less than in switch statement C

I'm trying to write a code that has a lot of comparison


Write a program in “QUANT.C” which “quantifies” numbers. Read an integer “x” and test it, producing the
following output:

x greater than or equal to 1000 print “hugely positive”
x from 999 to 100 (including 100) print “very positive”
x between 100 and 0 print “positive”
x exactly 0 print “zero”
x between 0 and -100 print “negative”
x from -100 to -999 (including -100) print “very negative”
x less than or equal to -1000 print “hugely negative”

Thus -10 would print “negative”, -100 “very negative” and 458 “very positive”.


then I tried to solve it using switch but it didn't work, do I have to solve it using if statement or there is a method to solve it using switch?



#include <stdio.h>

int main(void)
{
int a=0;
printf("please enter a number : \n");

scanf("%i",&a);

switch(a)
{
case (a>1000):
printf("hugely positive");
break;
case (a>=100 && a<999):
printf("very positive");
break;
case (a>=0 && a<100):
printf("positive");
break;
case 0:
printf("zero");
break;
case (a>-100 && a<0):
printf("negative");
break;
case (a<-100 && a>-999):
printf("very negative");
break;
case (a<=-1000):
printf("hugely negative");
break;

return 0;
}

Answer

There is no clean way to solve this with switch, as cases need to be integral types. Have a look at if-else if-else.