尝试获取数组中的最小元素时崩溃
Crash when trying to get minimal element in array
作业:给出了三个向量A [n],B [m],C [k]。对于每一个,找到最小的元素。
问题:当程序必须在每个数组中找到最小元素时
崩溃我想这是因为我在 GetMin 函数中写了返回 0,但我不知道我应该在那里写什么(听起来很愚蠢,但我是新手,现在有点沮丧(。将 0 更改为最小值,min2,min3 给出大的陌生数字。
int GetMin(int*a, int n, int*b, int m, int*c, int k)
{
int min = a[0];
for(int x = 0; x < n; ++x)
{
if(a[n] < min)
{
min = a[n];
}
}
int min2 = b[0];
for(int x = 0; x < n; ++x)
{
if(b[m] < min2)
{
min2 = b[m];
}
}
int min3 = c[0];
for(int x = 0; x < n; ++x)
{
if(c[k] < min3)
{
min3 = c[k];
}
}
return 0;
}
int main()
{
int n, m, k;
cout << "Enter size of first vector: ";
cin >> n;
cout << endl;
int*a = new int[n];
cout << "Enter vector elements: ";
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
cout << endl;
cout << "Enter size of second vector: ";
cin >> m;
cout << endl;
int*b = new int[m];
cout << "Enter vector elements: ";
for (int i = 0; i < m; i++)
{
cin >> b[i];
}
cout << endl;
cout << "Enter size of third vector: ";
cin >> k;
cout << endl;
int*c = new int[k];
cout << "Enter vector elements: ";
for (int i = 0; i < k; i++)
{
cin >> c[i];
}
cout << endl;
int result = GetMin(a, n, b, m, c, k);
cout << "Minimal element = " << result << endl;
delete[]a;
delete[]b;
delete[]c;
system("pause");
return 0;
}
直接的问题是你没有注意你的数组边界和循环变量。
m
、n
和 k
是无效索引,并且没有一个循环使用循环变量进行索引。
第一个应该看起来像这样:
int min = a[0];
for(int x = 0; x < n; ++x)
{
if(a[x] < min)
{
min = a[x];
}
}
将该循环包装在一个函数中,您可以在任意数量的数组中找到最少的元素。
相关文章:
- Cython通过vdMul调用MKL在元素乘法上崩溃
- C++ rezing 动态数组最多可以处理一定数量的元素,但在某些时候会崩溃并显示错误 (0XC0000005)
- 在C++中实现二叉搜索树,搜索不起作用.尝试打印节点的元素会导致输出崩溃
- 当我尝试将一个向量元素的值分配给另一个向量元素时,为什么我的应用程序会崩溃
- C++程序在迭代到数组的最后一个元素时崩溃
- 迭代器擦除矢量中的元素无效,但它不会崩溃
- 尝试获取数组中的最小元素时崩溃
- 试图删除最后一个std ::向量元素时,程序会崩溃
- 我的C 代码在尝试计算表中元素的总和时崩溃
- 将元素添加到列表会使程序崩溃..有时
- 创建新元素崩溃后,tinyxml2 xmldocument parse
- C++:指向对象的指针数组 - 删除元素时程序崩溃>
- 根据条件将元素从 std::vector 复制到 std::set 但它崩溃了
- 当我插入元素时,C 优先级队列会崩溃
- C++向<string>量元素传递到函数会导致 SIGSEGV 崩溃
- 将元素添加到现有结构会使函数在分段错误时崩溃
- 删除矢量元素指向的已分配内存会导致程序崩溃
- 尝试将元素添加到现有节点时程序崩溃
- C++:在重载 ostream >> 时引用 2D 数组元素时崩溃
- 超过120000个元素的数组崩溃