用C++ 编写一个程序,实现输入一个正整数n,然后输入n个整数,并计算它们的平均值。如果输入的n为0或负数,则输出错误信息并抛出异常;如果输入的整数不足n个,则输出错误信息并抛出异常。
时间: 2024-03-20 14:42:16 浏览: 56
IT公司笔试算法26题
好的,我可以帮你编写这个程序。以下是完整的 C++ 代码:
```cpp
#include <iostream>
#include <vector>
#include <stdexcept>
using namespace std;
int main() {
int n;
cout << "请输入正整数n:";
cin >> n;
if (n <= 0) {
throw invalid_argument("错误:输入的n必须为正整数!");
}
vector<int> nums;
cout << "请输入" << n << "个整数:";
for (int i = 0; i < n; i++) {
int num;
cin >> num;
nums.push_back(num);
}
if (nums.size() < n) {
throw invalid_argument("错误:输入的整数不足n个!");
}
double sum = 0;
for (int i = 0; i < n; i++) {
sum += nums[i];
}
double avg = sum / n;
cout << "这" << n << "个整数的平均值为:" << avg << endl;
return 0;
}
```
首先,我们使用 `int` 类型的变量 `n` 来存储用户输入的正整数。然后,使用 `cin` 函数从标准输入读取用户输入的 `n`。
接下来,我们对输入的 `n` 进行判断。如果为0或负数,则使用 `throw` 语句抛出一个 `invalid_argument` 异常,并输出错误信息。
如果 `n` 是正整数,则使用一个 `for` 循环读取用户输入的 `n` 个整数,并将它们存储在一个 `vector<int>` 类型的变量 `nums` 中。
然后,我们对输入的整数个数进行判断。如果不足 `n` 个,则使用 `throw` 语句抛出一个 `invalid_argument` 异常,并输出错误信息。
接下来,我们使用一个 `for` 循环计算这 `n` 个整数的和,并计算它们的平均值。最后,我们输出平均值,并返回 0 表示程序运行成功。
希望这个程序能够帮助到你!
阅读全文