首页 > 解决方案 > 不知道为什么我得到“错误:没有命名类型”

问题描述

问题要我打印最频繁的数组中的值,我卡在这一点上。

#include <iostream>
#include <cstdlib>
using namespace std;

int dupe(int arr1[], int nElements);  

int value;  
    for (int i =0; i < nElements; i++)
    {
        value = arr1[i];

            for (int j =i+1; j<nElements; j++)
            {
                if (value==arr[j])
                        return value;
            }
    } 




int main()
{
int arr1[] ={5,1,6,3,1}, nElements;  

nElements= sizeof(arr1)/sizeof(int);

cout<<dupe(arr1,nElements);



}

我不断收到一个编译器错误,上面写着:

9:9: error: expected unqualified-id before 'for'
9:24: error: 'i' does not name a type
9:36: error: 'i' does not name a type

不知道为什么任何帮助会有用

标签: c++

解决方案


你可能是说

#include <cstdlib>
#include <iostream>
using namespace std;

int dupe(int arr1[], int nElements)
{
    int value;
    for(int i = 0; i < nElements; i++)
    {
        value = arr1[i];

        for(int j = i + 1; j < nElements; j++)
        {
            if(value == arr[j])
                return value;
        }
    }
}

int main()
{
    int arr1[] = { 5, 1, 6, 3, 1 }, nElements;

    nElements = sizeof(arr1) / sizeof(int);

    cout << dupe(arr1, nElements);
}

函数 dupe 确实找到了第一个重复项,在这种情况下是目标值,但并非总是如此。

也许更好的方法是对数组进行排序(在算法标题中使用 std::sort )。这将使所有重复项相邻,因此易于计数。


推荐阅读