创建一个包含 10 个元素的 int 一维数组,从键盘接收其值;当用户输入非法时,提示重新输入;计算一维数组中的元素平均值,并显示(保留小数点后4 位);
时间: 2023-12-16 12:03:59 浏览: 108
以下是一个简单的实现:
```c++
#include <iostream>
using namespace std;
int main() {
const int SIZE = 10;
int arr[SIZE];
double sum = 0.0;
int count = 0;
// 接收用户输入
for (int i = 0; i < SIZE; i++) {
cout << "请输入第 " << i + 1 << " 个整数:";
cin >> arr[i];
// 判断输入是否合法
while (cin.fail()) {
cin.clear(); // 清空错误状态
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略缓冲区剩余字符
cout << "非法输入,请重新输入第 " << i + 1 << " 个整数:";
cin >> arr[i];
}
sum += arr[i];
count++;
}
// 计算平均值并输出
double avg = sum / count;
cout << "平均值为:" << fixed << setprecision(4) << avg << endl;
return 0;
}
```
上述代码中,我们使用了 `cin.fail()` 来判断用户输入是否合法。如果不合法,我们需要清空错误状态和缓冲区,并提示用户重新输入。最后,我们使用 `fixed` 和 `setprecision` 来保留小数点后4位并输出平均值。
阅读全文