在C语言中,找出数组中相邻数差值最小的一对并输出其索引和差值,可以通过以下步骤实现:
遍历数组 :使用两个嵌套循环来遍历数组中的每一对相邻元素。计算差值:
在循环中计算相邻元素的差值。
比较差值:
比较每一对相邻元素的差值,记录下最小差值及其对应的索引。
输出结果:
最后输出最小差值及其对应的索引。
```c
include include int main() { int n, i, j, min_diff = INT_MAX, min_i = -1, min_j = -1; scanf("%d", &n); int arr[n]; // 读取数组元素 for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 遍历数组,找出相邻数差值最小的一对 for (i = 0; i < n - 1; i++) { int diff = arr[i + 1] - arr[i]; if (diff < min_diff) { min_diff = diff; min_i = i; min_j = i + 1; } } // 输出结果 if (min_i != -1 && min_j != -1) { printf("相邻数对索引: (%d, %d), 差值: %d\n", min_i, min_j, min_diff); } else { printf("没有找到相邻数对\n"); } return 0; } ``` 代码解释: 输入部分 读取数组的大小 `n`。 读取数组元素并存储在 `arr` 数组中。 使用外层循环遍历数组中的每一个元素,内层循环遍历当前元素之后的每一个元素。 计算相邻元素的差值 `diff`。 如果当前差值 `diff` 小于之前记录的最小差值 `min_diff`,则更新 `min_diff`、`min_i` 和 `min_j`。 如果找到了相邻数对,输出其索引和差值。 如果没有找到相邻数对,输出提示信息。 注意事项: 确保数组索引不越界,特别是内层循环的终止条件是 `j < i`。 处理输入错误的情况,例如非整数输入或输入的数组大小超出预期。 这个算法的时间复杂度是 O(n^2),适用于小规模数组。对于大规模数组,可以考虑更高效的算法来降低时间复杂度。遍历数组
比较差值
输出结果