用C语言实现对三元组的构造,读取,求最大值,最小值等基本操作
时间: 2024-09-12 21:04:27 浏览: 76
在C语言中,可以使用结构体(struct)来实现三元组(通常表示为元组,每个元素是一个不同的数据类型),并为其提供一些基本操作的方法。首先,创建一个名为`Triple`的结构体,包含三个成员:
```c
typedef struct {
int first;
float second;
char third;
} Triple;
```
接下来,我们可以编写函数来进行构造、读取、比较和查找最大值、最小值等操作。
### 构造函数(Create a new triple)
```c
Triple createTriple(int a, float b, char c) {
Triple t;
t.first = a;
t.second = b;
t.third = c;
return t;
}
```
### 读取操作(Read the values)
```c
void displayTriple(const Triple t) {
printf("First element: %d\n", t.first);
printf("Second element: %.2f\n", t.second);
printf("Third element: %c\n", t.third);
}
```
### 比较大小(Find max and min)
```c
int compareMax(Triple t1, Triple t2) {
if (t1.first > t2.first && t1.second > t2.second && t1.third > t2.third)
return 1;
else if (t1.first < t2.first && t1.second < t2.second && t1.third < t2.third)
return -1;
else
return 0; // 相同
}
Triple findMax(Triple arr[], int n) {
Triple maxTriple = arr[0];
for (int i = 1; i < n; i++) {
if (compareMax(arr[i], maxTriple) == 1)
maxTriple = arr[i];
}
return maxTriple;
}
Triple findMin(Triple arr[], int n) {
Triple minTriple = arr[0];
for (int i = 1; i < n; i++) {
if (compareMax(arr[i], minTriple) == -1)
minTriple = arr[i];
}
return minTriple;
}
```
### 使用示例
```c
#include <stdio.h>
int main() {
Triple t1 = createTriple(1, 2.5, 'A');
Triple t2 = createTriple(3, 4.7, 'B');
displayTriple(t1);
displayTriple(t2);
Triple* arr[] = {&t1, &t2};
int n = sizeof(arr) / sizeof(arr[0]);
Triple maxTriple = findMax(arr, n);
displayTriple(maxTriple);
Triple minTriple = findMin(arr, n);
displayTriple(minTriple);
return 0;
}
```
阅读全文