十六周结构体3

问题及代码

#include <stdio.h>
#include <math.h>
struct Point
{
    float x;
    float y;
};
int main()
{
    struct Point p1, p2;
    float dx,dy,d;
    printf("请输入p1点的坐标: ");
    scanf("%f %f",&p1.x, &p1.y);
    printf("请输入p2点的坐标: ");
    scanf("%f %f",&p2.x, &p2.y);
    dx=p1.x-p2.x;
    dy=p1.y-p2.y;
    d = sqrt(dx*dx+dy*dy);
    printf("两点间的距离是: %.2f\n", d);
    printf("p1关于x轴的对称点是(%.1f, %.1f)\n", p1.x, -p1.y);
    printf("p2关于原点的对称点是(%.1f, %.1f)\n", -p2.x, -p2.y);
    return 0;
}


 

运行结果

知识点总结

struct Point 需要在main函数中再次声明

学习心得

在C语言中,GPS时间是以协调世界时(Coordinated Universal Time, UTC)为基础的,通常表示为连续数目的(Week Number)加上剩余的小数值(即星期数和毫秒)。要将GPS时间转换为北京时间,你需要考虑以下几个步骤: 1. 获取UTC时间:首先,你需要从GPS数据中提取出UTC时间的数、星期数以及毫秒部分。 2. 转换到Unix时间戳:UTC时间乘以7天(因为一有7天,一共有604800秒),再加上GPS数对应的开始时间(大约1980年1月6日的闰秒调整)作为Unix时间戳。 3. 根据中国时差计算:北京时间比UTC快8小时。如果需要日期平移,还需要考虑到夏令时的变化。中国的夏令时期间通常是每年的三月最后一个星期六的早上1点开始,十月最后一个星期六的晚上1点结束。 4. 将Unix时间戳转换为本地日期和时间:可以使用`time_t`结构体和相关的函数如`gmtime_r()`(获取格林尼治标准时间的结构)和`localtime_r()`(转换为本地时间)。 ```c #include <stdio.h> #include <time.h> // GPS数和余数转换为Unix时间戳 long long gps_to_unix(int weeks, int julian_seconds) { // ...这里计算闰秒和总秒数... } // 转换为北京时间 struct tm bj_time; time_t utc_time = gps_to_unix(weeks, ...); gmtime_r(&utc_time, &bj_time); // 获得UTC时间 bj_time.tm_hour += 8; // 加上8小时时差 // 输出北京时间 char time_str[64]; strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", &bj_time); printf("北京时间: %s\n", time_str);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值