如何用C++编程计算一个5行3列的二维数组中每一行元素之和,并将这些和按照升序排列后显示出来?
时间: 2024-12-13 14:18:42 浏览: 9
剑指offer刷题笔记
在C++中,你可以通过以下步骤来计算一个5行3列的二维数组中每行元素之和,并对这些和进行排序:
1. 首先,定义一个5行3列的二维整数数组。
```cpp
int arr[5][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12},
{13, 14, 15}
};
```
2. 创建一个动态大小的`std::vector<int>`来存储每行的和。
```cpp
std::vector<int> rowSums;
```
3. 使用嵌套循环遍历数组,计算每行的和并添加到`rowSums`中。
```cpp
for (int i = 0; i < 5; ++i) {
int sum = 0;
for (int j = 0; j < 3; ++j) {
sum += arr[i][j];
}
rowSums.push_back(sum);
}
```
4. 对`rowSums`向量进行排序。C++标准库提供`std::sort`函数可以完成这一步,注意这里需要包含头文件`<algorithm>`。
```cpp
#include <algorithm>
std::sort(rowSums.begin(), rowSums.end());
```
5. 最后,打印出排序后的行和。
```cpp
for (int i = 0; i < rowSums.size(); ++i) {
std::cout << "第" << i+1 << "行的和为:" << rowSums[i] << std::endl;
}
```
完整的示例代码如下:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int arr[5][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12},
{13, 14, 15}
};
std::vector<int> rowSums;
for (int i = 0; i < 5; ++i) {
int sum = 0;
for (int j = 0; j < 3; ++j) {
sum += arr[i][j];
}
rowSums.push_back(sum);
}
std::sort(rowSums.begin(), rowSums.end());
for (int i = 0; i < rowSums.size(); ++i) {
std::cout << "第" << i+1 << "行的和为:" << rowSums[i] << std::endl;
}
return 0;
}
阅读全文