Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数组C+中查找最常出现的元素+; 我需要找到数组C++中最常出现的元素。我的代码总是返回0_C++_Arrays_Pointers - Fatal编程技术网

在数组C+中查找最常出现的元素+; 我需要找到数组C++中最常出现的元素。我的代码总是返回0

在数组C+中查找最常出现的元素+; 我需要找到数组C++中最常出现的元素。我的代码总是返回0,c++,arrays,pointers,C++,Arrays,Pointers,p/s: 此函数应分析数组,以查找数组中最常出现的值。您不必考虑双模态出现,因此第一个模态值足以满足此函数定义 #include <iostream> #include <ctime> #include <random> using namespace std; int* generateArray(int size); int findMode(int* arr, int size); default_random_engine eng(static_cas

p/s: 此函数应分析数组,以查找数组中最常出现的值。您不必考虑双模态出现,因此第一个模态值足以满足此函数定义

#include <iostream>
#include <ctime>
#include <random>
using namespace std;
int* generateArray(int size);
int findMode(int* arr, int size);
default_random_engine eng(static_cast<unsigned>(time(0)));
uniform_int_distribution<int>randNum(0,20);

int main()
{
    // random 500 number for array coding

    int SIZE = 20;
    int* array = generateArray(SIZE); //output of 501 random element from 10-100
    cout << endl;
    findMode(array, SIZE);

    delete[] array; //delete new int [size]
    array = nullptr;
    return 0;
}
int* generateArray(int size)
{
    int* arr = new int[size];
    cout << "Random number of 501 elements: " << endl;
    cout << setw(6);
    for (int i = 0; i < size; i++) //loop
    {
        arr[size] = randNum(eng);
        cout << arr[size] << " ";
    }

    return arr; //return to array
}

int findMode(int* arr, int size)
{
    int max_count = 0;
    cout << "\nMost occurred number: ";
    for (int i = 0; i < size; i++) {
        int count = 1;
        for (int j = i + 1; j < size; j++)
            if (arr[i] == arr[j])
                count++;
        if (count > max_count)
            max_count = count;
        if (count == max_count)
            cout << arr[i] << endl;
    }
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int*GeneratorRay(int大小);
int findMode(int*arr,int size);
默认随机引擎引擎引擎(静态强制转换(时间(0));
均匀分布randnum(0,20);
int main()
{
//用于阵列编码的随机500数
int SIZE=20;
int*array=generatarray(SIZE);//从10-100输出501个随机元素

cout在代码段中:

for (int i = 0; i < size; i++) //loop
{
    arr[size] = randNum(eng);
    cout << arr[size] << " ";
}
修改generateArray()及其调用,如下所示,应该更改for循环

void generateArray(int* arr, int size)
{

    cout << "Random number of 501 elements: " << endl;
    cout << setw(6);
    for (int i = 0; i < size; i++) //loop
    {
        arr[i] = randNum(eng);
        cout << arr[i] << " ";
    }
}
void generatarray(int*arr,int size)
{

cout试试这个。创建一个变量来存储重复次数最多的数字的索引

int findMode(int* arr, int size)
{
    int max_count = 0,maxval_index=0;
    cout << "\nMost occurred number: ";
    for (int i = 0; i < size; i++) {
        int count = 1;
        for (int j = i + 1; j < size; j++)
            if (arr[i] == arr[j])
                count++;
        if (count >= max_count){
            max_count = count;
            maxval_index=i;}
    }
    cout<<arr[maxval_index]<<endl;
    return 0;
}
int findMode(int*arr,int size)
{
int max_count=0,maxval_index=0;
cout=最大值(单位计数){
最大计数=计数;
maxval_index=i;}
}

能否在
findMode
中激活
返回0;
它总是返回
0
?什么是
randNum(英文)
?嗨,谢谢。我也把报税表0改成了不同的数字,但仍然无法正确获取。阿纳斯塔乔:嗨,对不起,我只是加了一个。这是随机数。谢谢you@Mannoj当前位置非常感谢您的帮助。我不知道您的答案为什么被删除。我很感激。非常感谢您。您救了我的命。我花了一整天的时间试图请退出,只关注第二个功能,而不是第一个功能。我非常感激。(p/s:我将从医学转向CS,因此必须从头开始学习编码。再次感谢您帮助我,而不是考虑我糟糕的编码)@ngocphan我不是Mannoj,我的朋友,你仍然需要重构findMode函数,它没有做它应该做的事情,祝你的carrer更改好运。其中一名成员对我的回答投了否决票,我的回答只做了一点修改。@anastaciu:谢谢你给出了非常详细的解释。再次感谢你帮助我。是的,我修复了d它现在看起来很有效:)@ngocphan,不客气,别忘了接受其中一个答案。嗨@Mannoj,OP似乎很感激,你给他打过电话了吗?:)不,我的朋友,事实上,我已经发布了问题的第一个答案。有人否决了它,所以,我删除了那个旧答案。哦,我明白了。UV的意思是…@anastaciu实际上没有ng在DV中不好,但应该有帮助注释来改进答案,这样才更有意义。如果答案正确,DV是不好的,但是的,我同意正确应用DV时没有任何错误。感谢您的帮助。您的代码好多了:)
int main()
{
    // random 500 number for array coding

    int SIZE = 20;
    int* arr = new int[SIZE];
    generateArray(arr, SIZE); //output of 501 random element from 10-100
    cout << endl;
    findMode(arr, SIZE);

    delete[] arr; //delete new int [size]
    arr = nullptr;
    return 0;
}
int findMode(int* arr, int size)
{
    int max_count = 0,maxval_index=0;
    cout << "\nMost occurred number: ";
    for (int i = 0; i < size; i++) {
        int count = 1;
        for (int j = i + 1; j < size; j++)
            if (arr[i] == arr[j])
                count++;
        if (count >= max_count){
            max_count = count;
            maxval_index=i;}
    }
    cout<<arr[maxval_index]<<endl;
    return 0;
}