用C语言,有一函数: (1)不嵌套的IF语句;(2)嵌套的IF语句;(3)SWITCH语句

2025-04-09 04:30:20
推荐回答(3个)
回答1:

以下三个依次为非嵌套,嵌套,switch:
int fun(int x)
{
if (x > -5 && x < 0)
return x;
else if (x == 0)
return x-1;
else if (x > 0 && x < 10)
return x+1;

printf("此x不在定义域\n");
return 0;
}

int fun(int x)
{
if (x < 10)
{
if (x > 0)
return x+1;
else if (x == 0)
return x-1;
else if (x > -5)
return x;

printf("此x不在定义域\n");
return 0;
}
printf("此x不在定义域\n");
return 0;
}

int fun(int x)
{
switch (x)
{
case 9:
case 8:
case 7:
case 6:
case 5:
case 4:
case 3:
case 2:
case 1:
return x+1;
case 0:
return x-1;
case -1:
case -2:
case -3:
case -4:
return x;
default:
printf("此x不在定义域\n");
return 0
}
}

ps:恐怕你不能把分给我上面那位仁兄了,因为他把(x > -5 && x < 0)写错成(x >= -5 && x < 0)了。谢谢

回答2:

//不嵌套
int calculate(int x)
{
int result = 0;

if(x <= -5 || x >= 10)
printf("输入超出定义域");
if(x >= -5 && x < 0)
result = x;
if(x == 0)
result = x - 1;
if(x > 0 && x < 10)
result = x + 1;
return result;
}
//嵌套
int calculate(int x)
{
int result = 0;

if(x <= -5 || x >= 10)
printf("输入超出定义域");
else
{
if(x >= -5 && x < 0)
result = x;
else
{
if(x == 0)
result = x - 1;
else
result = x + 1;
}
}
return result;
}
//switch
int calculate(int x)
{
int result = 0;
int s = -1;

if(x >= -5 && x < 0)
s = 1;
if(x == 0)
s = 2;
if(x > 0 && x < 10)
s = 3;
switch(x)
{
case 1:
result = x;
case 2:
result = x - 1;
case 3:
result = x + 1;
defualt:
printf("输入超出定义域");
}
return result;
}
其实可以在书中找到的,把分给我吧,我需要

回答3:

不嵌套
int fun(int x)
{
int rst = 0;

do {
if (x <0 && x>-5){
rst = x;
break;
}
if (x == 0){
rst = x-1;
break;
}
if(x>0&&x<10){
rst = x+1;
break;

}while (0)
return rst;
}