符号函数功能描述如下,请应用if语句编写算法实现: y={-1,x<0 0,x=0 1,x>0 输入格式: 请在一行中输入1个整数x。
该题如何做
。
#include <stdio.h>
int main() {
int x;
scanf("%d", &x);
if (x < 0) {
printf("-1");
} else if (x == 0) {
printf("0");
} else {
printf("1");
}
return 0;
}
针对符号函数的问题,可以直接使用三目运算符来实现,代码如下:
int symbol(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
如果需要使用if语句来实现,可以按照符号函数的定义,进行判断,代码如下:
int symbol(int x) { if(x > 0) { return 1; } else if(x < 0) { return -1; } else { return 0; } }
需要注意的是,在判断x等于0时,不能直接使用x == 0的方式来判断,因为有时候出现精度问题,x有可能不是精确的0,而是非常接近0的值,所以需要将它和一个很小的数比较,例如1e-6,如果x的绝对值小于1e-6,则认为x等于0。代码如下:
int symbol(int x) { if(x > 0) { return 1; } else if(x < 0) { return -1; } else { if(fabs(x) < 1e-6) { return 0; } else { //x不等于0 //... } } }
需要注意的是,fabs函数需要引用math.h头文件。