如何用c判断三个数字是否相邻,可以不按顺序
时间: 2024-11-07 11:13:29 浏览: 5
输入3个实数,按照代数值从小到大的顺序输出这三个数 .docx
要判断三个数字是否相邻(但不考虑它们的顺序),你可以遍历给定的数字数组,并检查每个元素与其前后两个元素之间的差值是否为1。如果存在这样的组合,那么这三个数字就是相邻的。
以下是一个简单的C语言函数,它接受一个整数数组`arr`和它的长度`n`作为参数,返回一个布尔值表示是否存在连续的三个数字:
```c
#include <stdbool.h>
bool areAdjacent(int arr[], int n) {
for (int i = 0; i < n - 2; i++) {
if (abs(arr[i + 1] - arr[i]) == 1 && abs(arr[i + 2] - arr[i + 1]) == 1) {
return true;
}
}
return false;
}
```
这个函数首先从数组的第一个位置开始,依次检查每个位置的元素与其前一个和后一个元素的差是否为1。如果找到符合条件的三元组,就立即返回`true`;否则,在整个数组都检查完毕后返回`false`。
使用这个函数的方法如下:
```c
int main() {
int numbers[] = {2, 3, 4, 5, 6}; // 测试数组
int n = sizeof(numbers) / sizeof(numbers[0]);
if (areAdjacent(numbers, n)) {
printf("Three adjacent numbers found.\n");
} else {
printf("No three adjacent numbers found.\n");
}
return 0;
}
```
阅读全文