我试图找到数组中较小数字的出现次数,但似乎有些错误。我没有得到正确的结果。你能救我吗?
#include<iostream>
void readArray(int elements, int* array)
{
for (int index = 0; index < elements; index++)
std::cin >> array[index];
}
int main()
{
int *array, elements;
std::cout << "Number of elements: ";
std::cin >> elements;
array = new int[elements];
readArray(elements, array);
int min = array[0];
int count = 1;
for (int index = 1; index < elements; ++index)
{
if (array[index] = min)
count++;
else
if (array[index] < min)
{
count = 1;
min = array[index];
}
}
std::cout << "Minimum is: " << min;
std::cout << "\nNumber of occurences is: " << count << "\n";
//cleanup
delete(array);
return 0;
}
答案 0 :(得分:0)
这种比较是错误的:
if (array[index] = min)
您需要使用double equal作为比较运算符:
if (array[index] == min)
答案 1 :(得分:0)
如果您已经知道最小的数字,那么只需使用std::count_if即可。 要在计数之前获得最小的数字,只需使用std::minmax_element。基本上,如果您只使用标准库中已提供的工具,则您的问题会减少为几行代码。