函数参数过多 [已关闭]

too many argument to the function [closed]

提问人:potato-sam 提问时间:11/17/2023 最后编辑:πάντα ῥεῖpotato-sam 更新时间:11/17/2023 访问量:76

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

5天前关闭。

我在终端中收到此错误:参数太多而无法正常工作。我认为这与功能有关,但到目前为止我无法找出任何解决方案。我对 c++ 有点陌生,所以我希望我能得到一些解决这个问题的指导。'bool Verify(int, int)'

我的代码如下所示:

#include<iostream>
#include<cmath>
bool Verify(int number,int size);

int main()
{
    int number;
    std::cin>>number;
    int size= floor(log10(number))+1;
    int array[size];

    if(Verify(number,size,array)==true){
        std::cout<<"this number is verify";
    }else{
        std::cout<<"this number isn't verify";
    }
    return 0;
}
bool Verify(int number,int size,int array[])
{
    int sum=0;
    for(int i=0;i<size;i++){
    int digit=number%10;
    number=number/10;
    array[i]=digit;
    }

    for(int j=0;j<size;j+2){
        if(array[j]%2==1)
        {
            sum=sum+array[j];
        }else if(array[j]>4){
            sum=sum+2*array[j]-9;
        }else
        {
            sum=sum+2*array[j];
        }
        
    }
    if(sum%10==0){
        return true;
    }else{
        return false;
    }
} 
C++语言

评论

0赞 Pepijn Kramer 11/17/2023
看起来您正在从过时的来源学习 C++。停止使用“C”样式的数组。例如,您的验证函数应使用 not .请参见 std:;向量std::vector<int>&int array[]
0赞 Pepijn Kramer 11/17/2023
学习C++的好资源是一本好书(确保它是最新的,而不是教你“C”)。或者您可以使用 learncpp.com。此外,请确保检查 cppreference 以探索 C++ 必须提供的内容(容器/算法)。最后,请参阅 C++ 核心指南,了解如何使用 C++。

答:

3赞 YSC 11/17/2023 #1

你的声明和定义相互矛盾:Verify

声明:

bool Verify(int number,int size);

定义:

bool Verify(int number,int size,int array[]) //...

修复声明以反映定义。


不是问题的一部分:你已经在这里设置了一个无限循环:

for(int j=0;j<size;j+2)

j从不更新,因此将永远如此。j<size