分支-20. 计算符号函数的值(10)

本文提供了一个计算整数n对应符号函数值的程序代码,包括输入整数n和输出函数值的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



对于任一整数n,符号函数sign(n)的定义如下:


请编写程序计算该函数对任一输入整数的值。

输入格式:

输入在一行中给出整数n。

输出格式:

在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。

输入样例 1:

10       

输出样例 1:

sign(10) = 1    

输入样例 2:

0       

输出样例 2:

sign(0) = 0    

输入样例 3:

-98      

输出样例 3:

sign(-98) = -1

程序:

#include 
int main(void) {
	int n, sign;
	scanf("%d", &n);
	if(n < 0)
		sign = -1;
	else if(n > 0)
		sign = 1;
	else
		sign = 0;
	printf("sign(%d) = %d\n", n, sign);	
	return 0;
}

 
测试这个程序#include <stdio.h> #include <math.h> #define EPSILON 1e-6 typedef struct { double x, y; } point; typedef struct { point a, b, c; } triangle; double distance_sq(point p1, point p2) { double dx = p1.x - p2.x, dy = p1.y - p2.y; return dx*dx + dy*dy; } double triangle_area(triangle t) { return 0.5 * fabs((t.b.x - t.a.x)*(t.c.y - t.a.y) - (t.c.x - t.a.x)*(t.b.y - t.a.y)); } int is_equilateral(triangle t) { double ab = sqrt(distance_sq(t.a, t.b)); double bc = sqrt(distance_sq(t.b, t.c)); double ca = sqrt(distance_sq(t.c, t.a)); return fabs(ab - bc) < EPSILON && fabs(bc - ca) < EPSILON; } int is_isosceles(triangle t) { double ab = sqrt(distance_sq(t.a, t.b)); double bc = sqrt(distance_sq(t.b, t.c)); double ca = sqrt(distance_sq(t.c, t.a)); return fabs(ab - bc) < EPSILON || fabs(bc - ca) < EPSILON || fabs(ca - ab) < EPSILON; } int is_right(triangle t) { double ab = distance_sq(t.a, t.b); double bc = distance_sq(t.b, t.c); double ca = distance_sq(t.c, t.a); return fabs(ab + bc - ca) < EPSILON || fabs(bc + ca - ab) < EPSILON || fabs(ca + ab - bc) < EPSILON; } double area(triangle t) { return triangle_area(t); } int is_point_inside(triangle t, point p) { double c1 = (t.b.x - t.a.x)*(p.y - t.a.y) - (t.b.y - t.a.y)*(p.x - t.a.x); double c2 = (t.b.x - t.a.x)*(t.c.y - t.a.y) - (t.b.y - t.a.y)*(t.c.x - t.a.x); if (c1*c2 < -EPSILON) return 0; c1 = (t.c.x - t.b.x)*(p.y - t.b.y) - (t.c.y - t.b.y)*(p.x - t.b.x); c2 = (t.c.x - t.b.x)*(t.a.y - t.b.y) - (t.c.y - t.b.y)*(t.a.x - t.b.x); if (c1*c2 < -EPSILON) return 0; c1 = (t.a.x - t.c.x)*(p.y - t.c.y) - (t.a.y - t.c.y)*(p.x - t.c.x); c2 = (t.a.x - t.c.x)*(t.b.y - t.c.y) - (t.a.y - t.c.y)*(t.b.x - t.c.x); return c1*c2 >= -EPSILON; }
最新发布
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值