【发布时间】:2014-01-07 12:59:57
【问题描述】:
我正在尝试编写一个有很多比较的代码
在“QUANT.C”中编写一个“量化”数字的程序。读取一个整数“x”并测试它,产生 以下输出:
x 大于或等于 1000 打印“非常积极”
x 从 999 到 100(包括 100)打印“非常积极”
x 介于 100 和 0 之间,打印“正数”
x 正好 0 打印“零”
x 介于 0 和 -100 之间,打印“负数”
x 从 -100 到 -999(包括 -100)打印“非常负面”
x 小于等于 -1000 打印“非常负”因此,-10 将打印“负面”、-100 “非常负面”和 458 “非常正面”。
然后我尝试使用 switch 语句来解决它,但它不起作用。我必须使用if 语句来解决它,还是有一种方法可以使用 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;
}
【问题讨论】:
-
switch只能处理具有恒定整数值的精确比较。您必须使用if和else。 -
七个编译错误应该告诉你一些事情(和1个警告:
control reaches end of non-void function)。 -
在你的问题定义中没有提到只使用 switch case。如果还有其他方法!
标签: c if-statement comparison switch-statement