读取若干个整数,将其中大于平均值的前五个存储到一维数组中,要求利用指针完成上述功能
时间: 2024-03-20 19:39:58 浏览: 64
好的,这是一个比较典型的指针练习题。我来帮你解答。
首先,我们需要先读取若干个整数并计算它们的平均值。代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
const int MAX_SIZE = 50;
int arr[MAX_SIZE];
int n, sum = 0;
double avg;
cout << "请输入整数个数 n(不超过 " << MAX_SIZE << " 个):" << endl;
cin >> n;
cout << "请输入 " << n << " 个整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i];
sum += arr[i];
}
avg = (double)sum / n;
cout << "平均值为:" << avg << endl;
return 0;
}
```
接下来,我们需要找出大于平均值的前五个数,并存储到一维数组中。代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
const int MAX_SIZE = 50;
int arr[MAX_SIZE];
int n, sum = 0;
double avg;
cout << "请输入整数个数 n(不超过 " << MAX_SIZE << " 个):" << endl;
cin >> n;
cout << "请输入 " << n << " 个整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i];
sum += arr[i];
}
avg = (double)sum / n;
cout << "平均值为:" << avg << endl;
int count = 0;
int* p = arr;
int result[5];
while (count < 5 && p < arr + n) {
if (*p > avg) {
result[count] = *p;
count++;
}
p++;
}
cout << "大于平均值的前五个数为:" << endl;
for (int i = 0; i < 5; i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,我们利用指针 `p` 遍历整个数组 `arr`,找出大于平均值的前五个数,并存储到数组 `result` 中。需要注意的是,我们在遍历数组时需要判断 `p` 是否越界,即 `p < arr + n`。
希望这个例子能够帮助到你,如果你还有其他问题,可以继续问我。
阅读全文