switch如何使用

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:51:19
#include "stdio.h"
void main()
{
int a,t;
scanf("%d",&a);
if(a>100000) printf("it's bad\n");
else if(a<100000&&a>=10000) t=5;
else if(a<10000&&a>=1000) t=4;
else if(a<1000&&a>100) t=3;
else if(a<100&&a>10) t=2;
else if(a<10&&a>=0) t=1;
printf("%d",t);
}
上面是一个IF语句 可是当超过5位数时,输出的是it's bad,但是下一行还有数字输出,并不是我想要的效果.还有上面如何用switch语句去实现?

因为你的printf("%d",t);是独立的一句,并没有受到if else语句的控制,要达到预期的效果,则要把printf("%d",t);加入到每句else if的后面,如if(a>100000) printf("it's bad\n"); 是不能偷懒的。

而且这段程序用switch来实现是很复杂的,因为switch语句中case后接的是整型常量表达式,不能用判断句的

#include "stdio.h"
void main()
{
int a,b,t;
scanf("%d",&a);
if(a>100000)
b=1;
else if(a<100000&&a>=10000)
b=2;
else if(a<10000&&a>=1000)
b=3;
else if(a<1000&&a>=100)
b=4;
else if(a<100&&a>=10)
b=5;
else if(a<10&&a>=0)
b=6;
switch(b)
{
case 1:
printf("it's bad\n");
break;
case 2:
t=5;
break;
case 3:
t=4;
break;
case 4:
t=3;
break;
case 5:
t=2;
break;
case 6:
t=1;
break;
default:
printf("Error!\n");
}