void main()
{
int x,y;
scanf("%d",&x);
if(x<1)
{
y=x;
printf("x=%3d, y=x=%d\n",x,y);
}
else if(x<10)
{
y=2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
}
else
{
y=3*x-11;
printf("x=%3d, y=3*x-11%d\n",x,y);
}
}
大家!这个语句要用switch写出!要怎么改写!!
这段代码因该使用if 而不是 switch(){}
强行使用 switch(){} ,没有任何意义
/* 无聊的 switch(){} 版 */
#include <stdio.h>
int main(void)
{
int x, y;
int c;
scanf("%d", &x);
if(x < 1)
c = 1;
else if(x < 10)
c = 2;
else
c = 3;
switch(c)
{
case 1:
y = x;
printf("x=%3d, y=x=%d\n",x,y);
break;
case 2:
y = 2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
break;
case 3:
y = 3*x-11;
printf("x=%3d, y=3*x-11%d\n",x,y);
break;
}
return 0;
}
/* 搂主因该去了解一下 switch(){} 的语法 */
[此贴子已经被作者于2007-11-11 20:58:48编辑过]
回个不一样的switch(),不算变态吧,以前学BASIC时见过的编程思路,不知现在还有没有人在用。
#include <stdio.h>
int main(void)
{
int x, y;
int c;
scanf("%d", &x);
c=(x<1)*1+(x>=1&&x<10)*2+(x>=10)*3;
switch(c)
{
case 1:
y = x;
printf("x=%3d, y=x=%d\n",x,y);
break;
case 2:
y = 2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
break;
case 3:
y = 3*x-11;
printf("x=%3d, y=3*x-11%d\n",x,y);
break;
}
return 0;
}
发个问题
不用 if语句,也不用?:运算,输出两个int型整数中的较大数。这两个数从键盘输入。大家想一想。
int a,b,c;
scnaf("%d%d",&a,&b);
c=int(a>b);
switch(c){
case 0:printf("%d",b);break;
case 1:printf("%d",a);break;
default:return;
}
输出两个数的最大者
或者这样:
int a,b,c;
scanf("%d%d",&a,&b);
c=(a>b)*a+(a<=b)*b;
printf("%d",c);
[此贴子已经被作者于2007-11-11 22:21:01编辑过]
书上没有的多了去了。。。