编程输入正整数N(N<100),再输入N个整数存入数组,再输入一个整数X,输出N个整数中与X距离最近的第一个数。两个整数的距离可定义为差的绝对值。(请使用指针技术)
时间: 2024-05-16 15:13:23 浏览: 116
输入一些整数,编程计算并输出其中所有正数的和,输入负数时不累加,继续输入下一个数 输入零时,表示输入数据结束 要求最后统计出累加的项数
5星 · 资源好评率100%
下面是使用指针技术的C++代码:
```
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int n, x;
int arr[100];
int* p = arr;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> *(p + i);
}
cin >> x;
int min_diff = abs(x - *p);
int min_index = 0;
for (int i = 1; i < n; i++) {
int diff = abs(x - *(p + i));
if (diff < min_diff) {
min_diff = diff;
min_index = i;
}
}
cout << *(p + min_index) << endl;
return 0;
}
```
首先,我们定义一个整型数组 `arr` 和一个指向 `arr` 的指针 `p`。然后,我们输入正整数 `n` 和 `n` 个整数,将这些整数存入数组中。接着,我们输入整数 `x`,并初始化 `min_diff` 和 `min_index` 为第一个数与 `x` 的差的绝对值和 0,分别表示目前找到的与 `x` 距离最近的数的差的绝对值和其在数组中的下标。最后,我们遍历数组中的每个数,计算其与 `x` 的差的绝对值,并更新 `min_diff` 和 `min_index`。最终,输出数组中与 `x` 距离最近的数。
阅读全文