-2

我正在做hackerrank三元组求和问题,我发现了这些错误,但我不知道为什么会出现这些错误。有人可以提供更多关于它的见解,如果可能的话,链接一个关于我应该阅读的主题的视频,以便至少让代码正确。

编码

#include <iostream>
using namespace std;
int compareTrip(int a[],int b[])
{
    int i=0,result1=0,result2=0;
    for(i=0;i<3;i++)
    {
        if(a[i]>b[i])
        result1++;

        if(a[i]<b[i])
        result2++;

        else {
        return 0;
        }
    }
}
int main()
{
    int i,a[3],b[3];
    for(i=0;i<3;i++)
    {
        cin>>a[i];
    }
    for(i=0;i<3;i++)
    {
        cin>>b[i];
    }
    compareTrip(a[], b[]);

}

错误

Solution.cpp:30:19: error: expected primary-expression before ‘]’ token
     compareTrip(a[], b[]);
                   ^
Solution.cpp:30:24: error: expected primary-expression before ‘]’ token
     compareTrip(a[], b[]);
                        ^
Solution.cpp: In function ‘int compareTrip(int*, int*)’:
Solution.cpp:18:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
4

3 回答 3

1
static List<Integer> compareTriplets(List<Integer> a, List<Integer> b) {

    List<Integer> points=new ArrayList<Integer>(2); ;
    
    int apoint=0,bpoint=0;
    
    for(int i=0;i<3;i++)
    {
        if(a.get(i)>b.get(i))
        {
            apoint++;
        }
        else if(a.get(i)<b.get(i))
        {
            bpoint++;
        }
        else
        {

        }
    }
    points.add(0,apoint);
    points.add(1,bpoint);
    return points;

}
于 2020-07-14T15:09:00.837 回答
0
  1. 您应该在传递参数时使用compareTrip(a,b);而不是。compareTrip(a[], b[]);
  2. 您的 main 函数应该返回一些值,因为它是整数类型int main()。希望能帮助到你。
于 2020-05-19T22:45:31.650 回答
0

发生前两个错误是因为编译器认为您正在尝试重新定义数组aand b,而您已经在main. 当您调用 时compareTrip(),您只需将这些数组的名称作为两个参数传入。

该错误control reaches end of non-void function表明第 18 行的函数末尾没有返回值。因此,您在 中有一组 if/else 语句compareTrip(),但您可能会得到两个整数数组,其中a和之间不匹配b,并且该功能不考虑这种情况。如果发生这种边缘情况,我们会发现自己处于无限循环中,因为函数会离开for语句并且永远不会return。因为该return值是一个 int,所以您希望return statement在最后的右括号之前包含一个 for 循环外部},以避免无限循环。

您可以通过https://www.learncpp.com/、、https://www.sololearn.com/Course/CPlusPlus/https ://www.codecademy等在线课程开始更多地了解 C++ 及其基本语法。 com/learn/learn-c-plus-plus。我相信前两个是免费的,第三个可以让您从免费试用开始。快乐学习!

于 2020-05-19T23:00:40.577 回答