未找到元素在矩阵中的位置

问题描述 投票:-2回答:1

我没有找到元素在矩阵中的位置,程序没有错误,没有警告,我正在使用Code :: Blocks和Dev C ++。从理论上讲,它应该工作,但不是。而且问题不在min1上,它很好用。代码如下:

#include <iostream>

using namespace std;

void matrice(int n) {

  cout << "Input the number of the elements " << endl;
  cin >> n;
  int D[n][n];
  cout << "Input the elements :" << endl;
  int i, j;
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      cin >> D[i][j];

    }
  }
  int pozi = 0, pozj = 0;
  int min1;
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      if (min1 > D[i][j]) {
        min1 = D[i][j];
        pozi = i;
        pozj = j;

      }
    }
  }
  cout << " The smallest element is : " << min1 << " and it is the [" << pozi << "][" << pozj << "] element in order." << endl;
}

int main() {
  int i, min1, j, n;

  int n1;
  cout << "Decide: " << endl;
  cout << "Matrice[1]" << "\t" << "Vector[2]" << endl;
  cin >> n1;
  if (n1 == 1) {
    matrice(n);
  } else if (n1 == 2) {}
}

c++ matrix position
1个回答
0
投票

事物的夫妇。

cin>>n;
int D[n][n];

不允许使用可变长度数组。

而且,您第一次使用min1时还没有初始化。您需要给它一个初始值,否则从它读取的是UB。一个好的初始化值是

int min1 = std::numeric_limits<int>::max();
© www.soinside.com 2019 - 2024. All rights reserved.