100分求写这个C语言问题

50分求写这个C语言问题

函数如下

x (-5<x<0)

y= x-1 (x=0)

x=1 (0<x<10)

编写程序 要求输入x的值,输出y的值

(1)不嵌套的if语句
(2)嵌套是if语句
(3)if-else语句
(4)switch语句

我理解,题目是这样的:
y=x (-5<x<0)
y=x-1 (x=0)
y=1 (0<x<10)
所以,x,y应该为double,或float类型的

(1)不嵌套的if语句
main()
{
double x, y;
scanf("%lf", &x);
if(x>-5 && x<0) y=x;
if(x==0) y=x-1;
if(x>0 && x<10) y=1;
printf("%lf", y);
}
(2)嵌套是if语句
main()
{
double x, y;
scanf("%lf", &x);
if(x>-5)
{ if(x<0)
y=x;
else
{
if(x==0) y=x-1;
else if(x<10) y=1;
}
}
printf("%lf", y);
}
(3)if-else语句
main()
{
double x, y;
scanf("%lf", &x);
if(x>-5 && x<0) y=x;
else if(x==0) y=x-1;
else if(x>0 && x<10) y=1;
printf("%lf", y);
}
(4)switch语句
main()
{
double x, y;
scanf("%lf", &x);
switch((int)x)
{
case -4:
case -3:
case -2:
case -1: y=x; break;
case 0: y=x-1; break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9: y=1; break;
default: y=0;
}
printf("%lf", y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-10
(1)不嵌套的if语句
main()
{
int x, y;
scanf("%d", &x);
if(x>-5 && x<0) y=x;
if(x==0) y=x-1;
if(x>0 && x<10) y=1;
printf("%d", y);
}
(2)嵌套是if语句
main()
{
int x, y;
scanf("%d", &x);
if(x>-5)
{ if(x<0)
y=x;
}
if(x==0) y=x-1;
if(x>0 && x<10) y=1;
printf("%d", y);
}
(3)if-else语句
main()
{
int x, y;
scanf("%d", &x);
if(x>-5 && x<0) y=x;
else if(x==0) y=x-1;
else if(x>0 && x<10) y=1;
printf("%d", y);
}
(4)switch语句
main()
{
int x, y;
scanf("%d", &x);
switch(x)
{
case -4:
case -3:
case -2:
case -1: y=x; break;
case 0: y=x-1; break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9: y=1; break;
default: y=1000;
}
if(y!=1000)
printf("%d", y);
}