编写一个程序,输入两个整数数组,然后计算两个数组对应元素之和,并输出结果
时间: 2024-03-07 09:49:14 浏览: 72
好的,以下是 Python 代码实现:
```python
def sum_of_arrays(arr1, arr2):
"""
计算两个整数数组对应元素之和
"""
result = []
for i in range(len(arr1)):
result.append(arr1[i] + arr2[i])
return result
# 示例输入
arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
# 计算两个数组对应元素之和
result = sum_of_arrays(arr1, arr2)
# 输出结果
print(result)
```
输出结果为:
```
[5, 7, 9]
```
这个程序定义了一个名为 `sum_of_arrays` 的函数,它接收两个整数数组 `arr1` 和 `arr2` 作为参数,并返回两个数组对应元素之和组成的新数组。在示例输入中,将两个数组 `[1, 2, 3]` 和 `[4, 5, 6]` 作为参数传递给函数,并将计算结果 `[5, 7, 9]` 输出到控制台。
相关问题
c++编写程序,输入 5 个数给数组 a,再输入 5 个数给数组 b,将两个数组 对应的元素相加的和赋值给数组 c,输出数组 c。考虑整型、小数等不同类型数 组的加法。
以下是C++的代码实现:
```cpp
#include <iostream>
using namespace std;
template<typename T>
void add(T c[], T a[], T b[], int size = 5) {
for(int i = 0; i < size; i++) {
c[i] = a[i] + b[i];
}
}
int main() {
int a1[5], b1[5], c1[5];
double a2[5], b2[5], c2[5];
cout << "请输入5个整数,用空格分隔:" << endl;
for(int i = 0; i < 5; i++) {
cin >> a1[i];
}
cout << "请输入5个整数,用空格分隔:" << endl;
for(int i = 0; i < 5; i++) {
cin >> b1[i];
}
cout << "整数数组相加的结果为:" << endl;
add(c1, a1, b1);
for(int i = 0; i < 5; i++) {
cout << c1[i] << " ";
}
cout << endl;
cout << "请输入5个小数,用空格分隔:" << endl;
for(int i = 0; i < 5; i++) {
cin >> a2[i];
}
cout << "请输入5个小数,用空格分隔:" << endl;
for(int i = 0; i < 5; i++) {
cin >> b2[i];
}
cout << "小数数组相加的结果为:" << endl;
add(c2, a2, b2);
for(int i = 0; i < 5; i++) {
cout << c2[i] << " ";
}
cout << endl;
return 0;
}
```
可以看到,我们使用了一个模板函数add,这样就可以方便地处理整型和小数型数组的加法。在主函数中,我们分别输入整型数组a1和b1,小数型数组a2和b2,然后调用add函数求出它们的和c1和c2,并输出结果。
编写一个C++程序,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
在C++中,你可以使用哈希表(unordered_set)来解决这个问题。哈希表提供快速查找的功能,可以帮助我们在O(1)时间内找到目标值减去当前元素的差。以下是解决方案:
```cpp
#include <vector>
#include <unordered_set>
std::pair<int, int> twoSum(std::vector<int>& nums, int target) {
std::unordered_set<int> hashTable;
for (size_t i = 0; i < nums.size(); ++i) {
int complement = target - nums[i];
if (hashTable.find(complement) != hashTable.end()) {
return {hashTable[complement], i};
}
hashTable.insert(nums[i]);
}
throw std::runtime_error("No solution found"); // 如果没有找到解,抛出异常
}
int main() {
std::vector<int> nums = {2, 7, 11, 15}; // 示例数组
int target = 9; // 目标值
try {
std::pair<int, int> indices = twoSum(nums, target);
std::cout << "Indices of the two numbers that add up to " << target << ": "
<< indices.first << " and " << indices.second << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
这个程序首先遍历数组,对每个元素检查是否存在目标值减去它的补数的元素,如果存在,则返回这两个元素的索引。如果遍历结束还没有找到,就说明不存在这样的两个数,抛出异常。
阅读全文