c语言中利用结构体计算两点之间的距离。

c语言中利用结构体计算两点之间的距离。

1、

复制代码
#include <stdio.h>
#include <math.h>  // c语言中基本数学运算的头文件,这里 sqrt函数使用到 

#define sqr(x) ((x) * (x))  // 函数式宏,计算平方 

typedef struct{   //结构体声明, 为类型声明 typedef名 Point,结构体两个结构体成员 x,y 
    double x;
    double y;
}Point;

double dis(Point p1, Point p2)   // 函数返回值double型, 形参为两个结构体类型。 
{
    return sqrt(sqr(p1.x - p2.x) + sqr(p1.y - p2.y));  //计算两点之间的距离, 每一个结构体的成员分别代表各自点的x轴y轴坐标 
}

int main(void)
{
    Point a, b;
    
    printf("a.x = "); scanf("%lf", &a.x);
    printf("a.y = "); scanf("%lf", &a.y);
    
    printf("b.x = "); scanf("%lf", &b.x);
    printf("b.y = "); scanf("%lf", &b.y);
    
    printf("distance:  %.3f\n", dis(a, b));  //函数调用,实参部分给与两个结构体,a和b。 
    
    return 0;
}
复制代码

 

2、

复制代码
#include <stdio.h>
#include <math.h>

#define sqr(x) ((x) * (x))

typedef struct{
    double x;
    double y;
} Point;

double dist(Point *a, Point *b)
{
    return sqrt(sqr(a -> x - b -> x) + sqr( a -> y - b -> y ));
}

int main(void)
{
    Point p1, p2;
    printf("p1.x = "); scanf("%lf", &p1.x);
    printf("p1.y = "); scanf("%lf", &p1.y);
    
    printf("p2.x = "); scanf("%lf", &p2.x);
    printf("p2.y = "); scanf("%lf", &p2.y);
    
    printf("distanbe result: %.2f\n", dist(&p1, &p2));
    
    return 0; 
}
复制代码

 

posted @   小鲨鱼2018  阅读(1693)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示