需要找到数组对角线中的最低值,想出了这段代码,但是并没有真正起作用。
int min = mas[0][0];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (mas[i][j] < min) min = mas[i][j];
}
}
cout << "min = " << min << endl;
cout << endl;
任何帮助将不胜感激。
答案 0 :(得分:0)
获取对角线元素,将它们存储在容器中并使用std::min_element获取最小的元素:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int mas[5][5] = { { 1, 2, 3, 4, 5 },
{ 1, 2, 3, 4, 5 },
{ 4, 3, 2, 1, 45 },
{ 5, 3, 8, 9, 66 },
{ 4, 3, 2, 1, 45 } };
std::vector<int> v;
for (int i = 0; i < 5; i++) {
v.push_back(mas[i][5 - i - 1]);
}
auto min = *std::min_element(v.begin(), v.end());
std::cout << "The smallest element on the diagonal is: " << min;
}
您要搜索的对角线公式为mas[i][n - i - 1]
,对角线为mas[i][i]
,另一对角线为int min = mas[0][n - 0 - 1];
for (int i = 0; i < n; i++) {
if ((mas[i][n - i - 1]) < min){
min = mas[i][n - i - 1];
}
}
。
如果您坚持使用原始数组:
int min = mas[0][0];
for (int i = 0; i < n; i++) {
if ((mas[i][i]) < min){
min = mas[i][n - i - 1];
}
}
对于一个对角线和:
$args = array(
'post_type' => 'job_listing',
'post_status' => 'publish',
'orderby' => array( 'meta_value_num' => 'DESC', 'title' => 'ASC' ),
'posts_per_page' => 100,
'tax_query' => array(
array(
'taxonomy' => 'job_listing_type',
'field' => 'slug',
'terms' => 'Startups'
)
)
);
$query = new WP_Query( $args );
为另一个。
答案 1 :(得分:0)
我们假设有一个名为mas
的2D数组,其范围为n
和m
。这是如何找到对角线的最小元素:
int minimal = mas[0][0];
for(unsigned int i = 1; i < std::min(n, m); ++i) {
if(mas[i][i] < minimal) {
minimal = mas[i][i];
}
}
答案 2 :(得分:0)
以下面的3x3数组为例:
0 1 2
0| 7 3 2 |
1| 4 6 5 |
2| 1 9 8 |
如您所见,对角线元素的坐标为(0,0),(1,1)和(2,2)。
使用这个事实我们可以使用两个for循环迭代2D数组,只找到x
和y
坐标相等的最小值:
#include <iostream>
using namespace std;
int main() {
int height = 3;
int width = 3;
int arr[height][width] =
{
{7,3,2},
{4,6,5},
{1,9,8}
};
cout << "The 2D array looks like this: " << endl;
int min = arr[0][0];
for (int i = 0; i < height; i++ ) {
for (int j = 0; j < width; j++ ) {
cout << arr[i][j] << " ";
if(i==j and min > arr[i][j]) {
min = arr[i][j];
}
}
cout << endl;
}
cout << "The minimum value of the diagonal of the 2D array is: " << min << endl;
return 0;
}
<强>输出:强>
The 2D array looks like this:
7 3 2
4 6 5
1 9 8
The minimum value of the diagonal of the 2D array is: 6