C语言-结构体-计算三点距离(
时间: 2023-12-31 22:03:44 浏览: 39
#include <stdio.h>
#include <math.h>
struct point {
int x;
int y;
};
float distance(struct point p1, struct point p2) {
int x_diff = p2.x - p1.x;
int y_diff = p2.y - p1.y;
return sqrt(x_diff * x_diff + y_diff * y_diff);
}
int main() {
struct point p1 = {0, 0};
struct point p2 = {3, 4};
struct point p3 = {5, 6};
float dist1 = distance(p1, p2);
float dist2 = distance(p2, p3);
float dist3 = distance(p3, p1);
printf("Distance between p1 and p2: %.2f\n", dist1);
printf("Distance between p2 and p3: %.2f\n", dist2);
printf("Distance between p3 and p1: %.2f\n", dist3);
return 0;
}
相关问题
c语言的结构体.和->
回答: 在C语言中,结构体的成员引用可以使用`.`和`->`两种方式。引用\[1\]中给出了一个结构体指针的定义示例,通过`->`符号可以方便地引用结构体指针所指向的结构体的成员变量。而引用\[2\]中的例子展示了使用`.`和`->`符号引用结构体成员变量的不同方式。使用`.`符号需要对结构体进行解引用,而使用`->`符号则可以直接引用结构体指针所指向的结构体的成员变量。引用\[3\]指出,结构体指针在C语言中被广泛使用,为了方便编程人员的使用,C语言提供了`->`符号来简化结构体成员的引用操作。
#### 引用[.reference_title]
- *1* [C语言结构体.和->](https://blog.csdn.net/dont_curry/article/details/104348116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [C语言基础 --- 结构体中的.和->的区别与联系](https://blog.csdn.net/wit_732/article/details/120253187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
c语言结构体-时间换算
以下是C语言结构体-时间换算的示例代码:
```c
#include <stdio.h>
#include <stdint.h>
#include <time.h>
typedef struct {
char bFileName[6]; //头文件名
char isInitialization; //初始化标志
uint16_t saveindex; //存储索引 从0开始每条19个字节...
} FileHeader;
int main() {
time_t begin_time = 1638288000; // 开始时间戳
time_t end_time = 1639065600; // 结束时间戳
struct tm *begin_tm = localtime(&begin_time); // 开始时间的tm结构体
struct tm *end_tm = localtime(&end_time); // 结束时间的tm结构体
printf("begin_time=%ld, end_time=%ld\n", begin_time, end_time);
for (int i = 0; i < 10; i++) {
printf("year=%d, month=%d, day=%d\n", begin_tm->tm_year + 1900, begin_tm->tm_mon + 1, begin_tm->tm_mday);
begin_time += 86400; // 加上一天的秒数
begin_tm = localtime(&begin_time); // 更新tm结构体
}
return 0;
}
```
该示例代码中,我们定义了一个结构体`FileHeader`,其中包含了三个成员变量。然后我们定义了两个时间戳`begin_time`和`end_time`,并通过`localtime`函数将其转换为`tm`结构体。接着我们通过循环遍历每一天,并通过`printf`函数输出年月日信息。